Coordination of algorithms in algorithmic trading engine with fast switching and safe mode

ABSTRACT

A graphical user interface is used along with an automated algorithm selection function to enable market participants to initiate automated, multi-algorithm trading strategies through a single drag and drop motion. A symbol representing a security can be dragged and dropped onto an icon representing a tactical or strategic algorithm. Other features of the graphical user interface show information such as the progress of the algorithms. Fast switching and safe mode are used to minimize a cost associated with algorithm switching.

REFERENCE TO RELATED APPLICATION

The present application is a continuation-in-part of U.S. patentapplication Ser. No. 11/783,250, filed Apr. 6, 2007, now pending, whichclaims the benefit of U.S. Provisional Patent Application No.60/795,646, filed Apr. 28, 2006, whose disclosures are herebyincorporated by reference in their entireties into the presentdisclosure.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention is directed to algorithmic trading in thefinancial industry and more particularly to a graphical user interfaceto allow a user to control such trading.

2. Description of Related Art

In recent years, the combination of decimalization and marketfragmentation has triggered a significant rise in algorithmic tradingwithin the financial industry. TowerGroup defines algorithmic tradingas, “placing a buy or sell order of a defined quantity into aquantitative model that automatically generates the timing of orders andthe size of orders based on goals specified by the parameters andconstraints of the model's logic.” An increasing number of traders areturning to algorithms as a lower-cost and theoretically more efficientway to cope with the proliferation of liquidity pools, ever-shrinkingorder sizes, and “penny-jumping.” Client consulting predicts that theoverall trade volume attributed to algorithmic trading will increasefrom 14% in 2005 to 25% in 2008. Not surprisingly, the increasedinterest in algorithmic trading has also been accompanied by a dramaticsurge in the number of financial firms and third party vendors offeringalgorithmic trading products. Yet despite this proliferation ofalgorithmic trading, there are still many traders who are notcomfortable with the process of selecting, managing, and evaluatingalgorithms. This discomfort with algorithmic trading can be attributedto a number of factors. For one, traders have not been given the levelof training or technological support required to maximize the benefitsof algorithmic trading. Firms have been selling their algorithms asstand-alone products without providing interactive electronic tools tohelp traders select, manage, and evaluate the algorithms they have attheir disposal. As a result, they often find themselves selecting thewrong algorithm, or if they select the right one, failing to manage itproperly once it is active. In fact, traders often claim that thealgorithms they use under perform their benchmarks. While it is unclearwhether this inadequate performance should be attributed to thealgorithms themselves or the traders' inability to use them properly, itis clear that many traders are skeptical about the ability of algorithmsto match the execution quality that can be achieved with moreconventional methods.

Second, the use of the complex algorithms which require less input andmanagement from users has necessarily implied a loss of control for thetrader. In using these complex algorithms, traders have been forced tohand their orders to a “black box,” an opaque system that takes inputsand gives outputs without revealing the logic of how it works. While thelack of transparency helps prevent the information leakage that canhappen when an algorithm's logic is known or too obvious, it alsodisintermediates the trader; denying him crucial information about thenature and quality of his executions. As a result, many traders who usethese more complex algorithms lose the ability to observe how theirorders impact the market. Without these observations, a trader isdistanced from “market feel,” the very value that he adds as a humantrader.

What has been missing from the algorithmic landscape is a system thatuses a simple, intuitive interface to enable the automation of complextrading strategies and to provide users with real-time feedbackregarding changing market dynamics, market impact and order executions.Existing prior art has attempted to address this need, but has failed;providing only text-heavy user interfaces with information that is hardto understand and even harder to navigate.

What has also been missing is a way to minimize or remove the costs thatin the past have been associated with switching between algorithms.

SUMMARY OF THE INVENTION

It is therefore an object of the present invention to fill theabove-noted void.

It is another object of the invention to use a graphical user interfacealong with an automated algorithm selection function to enable marketparticipants to initiate automated, multi-algorithm trading strategiesthrough a single drag and drop motion.

It is still another object of the invention to give the trader real-timefeedback about both his order executions and the market impact caused bythese executions.

It is yet another object of the invention to minimize, remove, orotherwise reduce the delay costs that in the past have been associatedwith switching between algorithms, as well as to reduce the risk that anexcessively large portion of a trade be executed at a price point thatis driven beyond fair value by competition from a separate trader oralgorithm.

Together, the subject system's combination of simplified initiation andreal-time feedback offers traders a “user-centric” approach to theautomation of complex trading strategies. As such, the subject systemenhances rather than supplants the value a human brings to the tradingprocess; expanding rather than limiting his perspective on the marketand how his orders impact the market through real-time visualindications of changing market conditions, the tactics his algorithmsare using and the level of market impact caused by these tactics.

To achieve the above and other objects, the present invention isdirected to a method for improving the process of algorithmic trading bysimplifying the tasks of initiating and managing algorithms whileproviding the user with real-time feedback regarding his automated tradeexecutions. Preferred embodiments of the subject system overcome thelimitations of known algorithmic trading products by (1) enabling marketparticipants to use a simple, intuitive graphical interface to initiatecomplex, multi-algorithm trading strategies through drag and dropmotions, (2) enabling users to monitor informational market impact costsin real time, (3) automating the selection, management, and cancellationof algorithms according to user inputs and (4) providing marketparticipants with visual indications that display algorithmic orderactivity, the type of execution tactics used by the subject system'sactive algorithms, and the maximum rate of execution that can be safelyachieved without triggering additional market impact costs throughinformation leakage, (5) enabling users to monitor both their tradingpositions and the market's position against a benchmark in real time,and (6) providing users with a perspective on where a particular stockfits within the larger context of the market.

One important definition of market impact is offered by Doyne Farmer andNeda Zamani in their paper entitled, “Mechanical vs. informationalcomponents of price impact,”http://www.santafe.edu/research/publications/workingpapers/06-09-034.pdf)However it is important to note that while the inventors have selectedthis definition of market impact for use in this application, there aremany other functional definitions of market impact which could besubstituted for this definition and are hereby covered by scope andspirit of this application.

In their paper Farmer and Zamani note that, “it is well known thattrading impacts prices—orders to buy drive the price up, and orders tosell drive the price down.” However they then go on to decompose theconcept of “market impact” into two distinct components: mechanical andinformational impact. Mechanical impact is defined “in terms of thechange in the mid-point price when an event is removed, but all otherevents are held constant;” meaning that mechanical impact is theinevitable change in price due purely to the presence of the event. Onthe other hand, informational impact is defined as the portion of totalimpact that cannot be explained by mechanical impact, the component ofmarket impact that is most sensitive to changes in trading tactics.

The inventors subscribe to the conceptual differentiation betweenmechanical impact and informational impact as explained in Farmer andZamani, and from this point forward, when the term “market impact,” isused in this application, it will refer to informational market impact.However, while Farmer and Zamani only quantify market impact as an“after the fact” average based on a large number of experiments; theinventors propose that informational market impact can also be measuredin real time by tracking the execution rate anomaly of an algorithm, orthe difference between the algorithm's expected rate of execution andits actual rate of execution.

This proposal embodies the conjecture that execution rate anomaly can beused as a proxy for informational market impact. The inventors believethis a valid correlation because unexpectedly low execution rates areusually the clearest sign available that other market participants arechanging their perception of fair price due to the algorithm's orderplacement activity. Abnormal execution rates can logically be attributedto exogenous factors influencing the price of a stock; the most commonof which are information leaks about pending or potential trades in themarket. These information leaks are the most common drivers of tradinganomalies; because when the leaks occur it becomes more difficult tofill orders as the leaks simultaneously discourage potentialcounterparties who fear being on the wrong side of potential pricemoments, and encourage potential competitors who hope to profit fromthese same potential price moments. As a result, information leaks oftencause a reduction or increase in the rate of execution to a level belowor above what would have been otherwise expected. On the other hand ifthe execution rate is normal, it is logical to assume that informationis not being leaked or if it is, the leaks are not significant enough tohave the effect of discouraging potential trade counterparties orencouraging potential competitors.

Because of this tight correlation between execution rate anomaly andinformation leakage, the subject system relies on a real-timemeasurement of the difference between the expected and the actual ratesof execution of its algorithms as real-time indication of market impact.More specifically, the subject system deems an algorithm to be“successful”—defined as not leaking enough trade information so as tocause any significant market impact, if its actual rate of execution isno more than one standard deviation below the expected rate given thecurrent state of the market. On the other hand, if the differencebetween the expected and actual rates of an algorithm's execution isgreater than one standard deviation, then the subject system deems thatalgorithm as “failing”—defined as causing enough information leakage soas to drive noticeable market impact. As a result, this measurementserves as an indication as to whether a tactic is successful and shouldbe left in operation, or if it is failing and needs updating. Tominimize the need for such updates, the subject system utilizes apredictive model to pre-empt tactical failure based on real-time marketinformation including the market response to the algorithm's orders, andwhenever possible, updates the tactic before it is found to fail.

The rate of execution of a tactic is defined as the number of sharesexecuted by the tactic during the time interval for which it was inoperation, divided by the total shares printed to the tape during thesame time interval. To determine the expected rate of execution for eachof the tactics employed by its algorithms, in one embodiment the subjectsystem first determines the current value of a technical price momentumindicator using technical analysis algorithms well known to thoseskilled in the art. It then looks up in a table stored in a database thehistorical average participation rate achieved when the momentum waswithin 5% of the current value. This database table is populated withrecords of past trades, storing in each case the achieved participationrate and the momentum at the start of the trade. In other embodiments,other prediction models including multivariate models such as NeuralNetworks, Linear Regression models or other predictive models known inthe art can be used to map a quantitative representation of the currentstate of the market to an expected execution rate for the given tactic.

Once the tactical algorithm is operating, its actual rate of executionis determined by calculating the shares executed by an algorithm dividedby the total shares printed to the tape. In the subject system, theexpected rate of execution is compared with the actual rate of executionat the end of intervals comprising the greater of one minute or 5 printson the tape; if the difference between the two numbers is greater thanone standard deviation then the subject system either adjusts the tacticor cancels it and selects a new tactic accordingly. Alternateembodiments employ an exponentially-decayed moving average of thisexecution rate measure. Importantly, the subject system also anticipatestactical failure by monitoring market response to the algorithm'sorders, and predicting the likelihood of low execution rates based uponthis conditioning information; if the likelihood of a low rate is abovea pre-configured threshold value then the subject system preemptivelyadjusts the tactic or cancels it and selects a new tactic accordingly.Indicators of market response include orders placed by third partiesimmediately following the algorithm's orders, the cancellation orexecution of orders on the contra side, or adverse price movements.Those skilled in the art will easily imagine other methods for detectingwhen the actual observations invalidate the expectations based uponwhich the tactic was selected.

In addition, it is important to note that while the preferredembodiments of the subject system described herein reference primaryusage in the financial, and in particular the equities market, thisinvention could also be used in a range of industries beyond thefinancial markets, including but not limited to financial derivativessuch as futures and options, commodities, airline tickets, manufacturingparts, or any other fungible items traded on an electronic marketplace,where a large order can be broken down into a plurality of smallerorders.

To minimize or remove the costs that in the past have been associatedwith switching between algorithms, the present invention implements twoadditional features, called fast switching and safe mode. Fast switchingis a development in how the Switching Engine executes the transitionbetween algorithms.

In the past, when traders wanted to change their intentions with aalgorithm, they had to wait for venues to cancel orders before theycould launch a new algorithm. They had to do this in order to ensurethey did not “over execute,” which is what occurs in instances where thetrader allocates shares to the new algorithm that had already beenfilled by the old algorithm. Waiting for the cancellations from the oldvenue ensures the trader is only sending unfilled shares to the newvenue. However, waiting for these cancellations could lead tohalf-second or even multi-second delays—valuable time in a world wheremillions of dollars of transactions can occur in a matter ofmilliseconds. To avoid these delays the subject system employs an ordermanagement system in switching between algorithms that allows it toprocess cancel requests and new algorithm routes simultaneously withoutexposing users to the risk of over-execution. Because of this strategy,the subject system can switch between algorithms in fewer than 10milliseconds.

The “Safe Mode,” is a mode the Switching Engine automatically employs,regardless of the Engine's user-selected speed setting, when it detectsthe presence of competing algorithms or more generally an unusual surgein competitive pressure that is causing a movement in the price of astock. When there is unusual competition in a stock it can quickly drivethe price of the stock up or down to levels that would not be expectedin the course of a “normal” trading day. Often this kind of competitionis driven by algorithms seeking to buy or sell a large amount of stockin a short period of time; such that during the period the algorithm isbuying or selling the price is pushed to an “unnatural level.” But thenas soon as the algorithm stops its buying or selling activity the stockquickly returns to its previous price threshold.

If this kind of surge in competition and the accompanying price movementis not detected, a trader or an algorithm participating in the market atthe bid or the offer will find themselves with shares purchased atprices that ultimately represent the high or the low of the day. Sincethe subject system is designed to automate the use of algorithms fortraders; it is imperative that it be able to both detect the presence ofthis kind of price-impacting competition and then make algorithmselection and switching decisions that protect the user from receivingfills at these temporarily inflated (or deflated) and undesirableprices.

Therefore, the subject system employs an invention that (a) detects whenthere are competitors present in the marketplace and (b) responds byautomatically switching to a one of a set of tactical algorithmsdesigned to perform in this “competitive surge” environment.

More specifically the Algorithm Switching Engine detects strongcompetition in a stock when the stock's price returns since orderarrival exceeds the returns on the S&P500 market index by one standarddeviation or more, and responds to that competition by switching to andusing for the duration of the surge, tactical algorithms that only sendsmall marketable orders that tag along with the order flow and do notpost any limit orders. By switching to and using these types ofalgorithm, the subject system avoids both contributing to the pricemovement and executing shares at the inflated (or deflated) prices.Other competition detection algorithms can be imagined by those skilledin the art.

BRIEF DESCRIPTION OF THE DRAWINGS

Preferred embodiments of the present invention will be set forth indetail with reference to the drawings, in which:

FIG. 1 shows a watch list having symbols representing securities;

FIG. 2 shows the watch list of FIG. 1, except with an enlarged symbol;

FIG. 3 shows a dashboard;

FIG. 4 shows the dashboard of FIG. 3 with a behavior matrix and adisplay of execution rates for a selected tactical algorithm;

FIG. 5 shows the dashboard with a fishbone (i.e., a dynamic, verticalprice scale);

FIG. 6 shows an operation of dropping a symbol on a desiredparticipation rate to launch the fishbone for a participation ratealgorithm;

FIG. 7 shows an operation of dropping a symbol on the pipeline algorithmto launch an order-entry box;

FIG. 8 shows a positions window;

FIG. 9 shows the positions window with an overall-progress informationbox;

FIG. 10 shows the positions window with a trade-details information box;

FIGS. 11A-11H show examples of tactic update messages in thestrategy-progress area;

FIG. 12 shows the positions window with active orders in multiplesymbols;

FIG. 13 shows the positions window for a symbol with multiple activealgorithms;

FIG. 14 shows the positions-window toolbar;

FIG. 15 shows the positions-window toolbar in a pipeline embodiment;

FIG. 16 shows a fishbone for an active algorithm launched from thepositions window, in which the fishbone shows a limit price for theactive algorithm and the current bid/offer;

FIGS. 17A and 17B show an order box launched from the active fishboneused to alter the algorithm's operating parameters;

FIG. 18 shows the fishbone for the active algorithm launched from thepositions window toolbar, in which the fishbone shows pending and filledorders

FIG. 19 shows the fishbone for an active algorithm launched from thepositions window tool bar, in which the fishbone shows liquidity linesrepresenting the effective depth of the book;

FIG. 20 shows the fishbone in a strategy-progress area with a “DisplayBenchmark Monitor Dial” button;

FIG. 21 shows a benchmark dial area below the fishbone in thestrategy-process area in a situation in which the benchmark dial isinactive;

FIG. 22 shows the active benchmark dial below the fishbone in a strategyprocess area with numeric indicators labeled;

FIG. 23 shows an active benchmark dial below the fishbone in a strategyprocess area with graphic indicators labeled;

FIGS. 24A-24F show a series of active benchmark dials;

FIGS. 25A and 25B show the use of the “rotate” arrow to flip from thebenchmark dial to the market context;

FIG. 26 shows an example of a market context;

FIG. 27 is a block diagram showing a system on which the preferredembodiments can be implemented;

FIGS. 28A-28C2 are flow charts showing an overview of the invention;

FIGS. 29-33 are screen shots showing a variation of the preferredembodiment in which the trader can control the speed of an algorithm;

FIG. 34 is a flow chart of the fast switch algorithm; and

FIG. 35 is a flow chart of the safe mode algorithm.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Preferred embodiments of the present invention will be set forth indetail with reference to the drawings, in which like reference numeralsrefer to like elements or steps throughout.

Definitions of Strategic and Tactical Algorithms as used in the SubjectSystem: A tactical algorithm is a computerized process to execute alarge order by repeatedly placing smaller buy or sell orders until thetotal quantity is completed, wherein the algorithm is optimized to bemost effective in specific market conditions, without regard to thepossibility that it may not function properly in other marketconditions. As such, a tactical algorithm is invoked to execute part butpossibly not all of an order, with the limited tactical objective suchas minimizing informational market impact in the current marketenvironment. A strategic algorithm is a computerized process to executea large order by invoking one or more tactical algorithms, depending onthe market conditions, to ensure that the process functions optimally atany time. A strategic algorithm is invoked to execute an entire order,and maintain a strategic objective such as minimizing overall marketimpact costs for the entire order.

In the preferred embodiments, the user can choose between a selection of“strategic” algorithms and a selection of “tactical” algorithms whendeciding on which algorithm to use for his trading strategy. For thepurposes of this application, a “strategic” algorithm is defined analgorithm capable of automatically selecting, initiating, and thenmanaging a group of tactical algorithms according to pre-programmedlogic that dictates which algorithms are best suited to respond tospecific market conditions or specific changes in market conditions. Inthe case of the preferred embodiment, the subject system offers threestrategic algorithms: the “Adaptive” algorithm, the “Execution Rate”algorithm, and the “Pipeline” algorithm.

In this preferred embodiment, all three strategic algorithms useexpected rate of execution as defined in the summary section to selectand initiate the algorithm best suited to fill a user's order givenexisting market conditions. Then, all three of these strategicalgorithms use a measure of market impact defined in the SummarySection—the difference between expected and actual rates of execution—asan indication of whether or not the selected tactical algorithm issucceeding and should be left “on,” or if it is failing and must beturned “off.” However, while the preferred embodiment employs strategicalgorithms that use execution rate and execution rate anomaly to drivethe selection and management of tactical algorithms, one skilled in theart could easily imagine an embodiment where the strategic algorithmsemploy other logic and feedback mechanisms to drive the process ofselecting and managing their available universe of tactical algorithms.

While a strategic algorithm is an algorithm capable of initiating andthen managing a complete trading strategy in the face of changing marketconditions, a tactical algorithm can only place and manage a series ofdiscreet orders according to pre-programmed instructions. A specificexample of a tactical algorithm is an algorithm that posts 100 shares onthe bid, cancels if unfilled after 2 minutes, posts again on the newbid, and so on until the total desired quantity has been purchased.Therefore a tactical algorithm is a relatively simple algorithm thatfollows a single behavior which is characterized in how it reacts toevents and data from the market.

It is important to note the distinction between strategic algorithms andtactical algorithms. When a user selects a strategic algorithm, he doesnot have to decide which tactical algorithms are best suited for theexisting market conditions, nor does he have to manage the level of thetactical algorithm's aggression as the market moves. The only pieces ofinformation the trader needs to provide when he uses a strategicalgorithm are his trading parameters, for example (but not limited to):size and price. On the other hand, when a trader uses a tacticalalgorithm he must both select the algorithms and set the parameters forthe algorithm's operation. In addition, he must manually change theseoperating parameters to maintain his strategy as market conditionschange.

The Subject System's Strategic Algorithms:

As previously noted, the preferred embodiment of the subject systemoffers users three strategic algorithms: the Adaptive algorithm, theExecution Rate algorithm and the Pipeline algorithm. As a strategicalgorithm, the Adaptive algorithm is an algorithm that uses ameasurement of market impact as defined in the summary section toautomate the selection and management of a set of tactical algorithms inkeeping with a strategy that can be summarized in two goals: ensuringthat an order is completed and minimizing market impact while the orderis being worked.

To translate these high-level goals into order executions, the Adaptivealgorithm uses a calculation of expected execution rate to determinewhich tactical algorithm is best suited for the current market and todefine a set of operating parameters for that tactical algorithm. Theseoperating parameters include but are not limited to limit price andaggression level. Then once the selected tactical algorithm begins towork the order; the subject system monitors both changes in marketconditions and the algorithm's actual rate of execution, and adjusts itsoperational parameters or selects a new tactical algorithm to ensurethat the rate of order executions stays inline with the Adaptivealgorithm's two primary goals. More specifically, the Adaptive algorithmwill select and then manage its tactical algorithms such that the actualrate of execution does not fall more than one standard deviation belowor two standard deviations above the expected rate of execution, basedupon the assumption that a strong mismatch between expected and actualrate of execution is a reflection of informational leakage. Furthermoreit will always terminate any tactical algorithms that result in actualexecution rates below 5%.

To calculate the expected rate of execution within existing marketconditions for each of the tactical algorithm within its universe ofcontrol, the Adaptive algorithm uses the current value of a technicalprice momentum indicator which the subject system pulls from a tablestored in the computer's memory. To populate this table, a historicaldatabase of past trades is used to calculate the historical average rateof each tactic for various ranges of values of price momentum. Then oncethe Adaptive Algorithm accesses this table containing the expected rateof execution calculated for each of its tactical algorithms within theexisting market conditions; it compares such expected rates to theoverall average rate of execution of said tactical algorithms, in orderto determine the marginal effect of the momentum on the expectedexecution rate. This difference between the expected rate given thecurrent market conditions and the overall average rate for this tacticwill be called the rate anomaly below. The Adaptive algorithm selectsthe tactical algorithm with the lowest rate anomaly—and by correlationthe lowest rate of market impact. Tactical agents are classified as“slow”, “normal” and “aggressive” according to their designed speed ofexecution; the expected rate of the “normal” rate tactic with the lowestrate anomaly will be referred to below as “red-line” rate: it is a proxyfor the highest rate one would expect to accomplish without making thealgorithmic trading activity easily detectable by other marketparticipants.

Once the tactical algorithm is operating, its actual rate of executionis then compared with the expected rate of execution at the end of everyminute interval. The actual rate of execution is determined by theshares executed by the tactical algorithm divided by the total sharesprinted to the tape; usually provided as a percentage. If the actualexecution rate falls more than one standard deviation or rises more thantwo standard deviations from expectations, that particular tacticalalgorithm is disabled and replaced by a new tactical algorithm selectedvia the same mechanism as described above. To prevent itself fromselecting the same tactical algorithm twice in a row, the Adaptivealgorithm remembers the three most recently disabled tactics and willnot select them as long as they are on the list of the last threetactical algorithms selected. While this embodiment of the Adaptivealgorithm employs this measurement of execution rate anomaly as amechanism for driving the selection and management of tacticalalgorithms, other mechanisms for selecting tactical algorithms imaginedby those skilled in the art also apply.

The “Execution Rate” algorithm is also a strategic algorithm. However,while the purpose of the Adaptive algorithm is to automate a tradingstrategy based on minimal market impact, (measured as the differencebetween actual execution rate and the expected rate for that tacticgiven the current market conditions), the purpose of the Execution Ratealgorithm is to give the user the flexibility to automate a tradingstrategy according to the specific level of market impact with which heis comfortable. For instance, the Execution Rate algorithm would beideal for a trader who has more time to complete his order and wants touse an execution rate that is lower than the Adaptive algorithm's statedparticipation rate target (for example, 20% execution rate), or for atrader who has less time, is not worried about market impact, and iswilling to accept a more aggressive execution rate in order to get moredone in a shorter timeframe.

Just like the Adaptive Algorithm, the Execution Rate algorithm uses themeasurement of market impact as defined in the summary section to selectand then manage the universe of tactical algorithms at its disposal.However, when a user initiates the Execution Rate algorithm, the subjectsystem does not assume that the user's preferred execution rate is theposted value (20% in the above example) for the Adaptive algorithm.Instead, when the user initiates the Execution rate algorithm, he mustselect his preference for expected execution rate; anywhere from 5% upto 40%. Then once the user indicates his preferred execution rate, thesubject system selects the tactical algorithm and associated operatingparameters that will best meet the user's input given the existingmarket conditions. Again, the subject system uses the same methods forcalculating the expected rate of execution for each of the availabletactical algorithms described in the summary section and in thedescription the Adaptive algorithm's operating procedures.

Then, as the tactical algorithm begins to work the order, the subjectsystem monitors the actual rate of execution, determined by the numberof shares executed by an algorithm divided by the total shares printedto the tape, at the end of each minute interval. It then compares theexpected execution rate selected by the user and the actual executionrate, and if the difference between the two numbers is greater than onestandard deviation, it makes adjustments to the operating parametersand/or the tactical algorithm in use to ensure that the Execution Ratealgorithm maintains the rate selected by the user.

The Pipeline Algorithm is the subject system's third strategicalgorithm, but is only available in the embodiment associated with thePipeline alternative trading system. It is important to note that whilethere are many figures, examples and elements in this application thatreference an embodiment of the subject system adapted for use with thePipeline Trading system, the subject system is designed to work as anadjunct to any proprietary trading system or trading platform, and theuse of examples from the embodiment developed for Pipeline in no waylimits the scope or application of the subject system.

The purpose of the Pipeline algorithm is to allow users to initiate astrategy which will place block orders on the Pipeline trading systemwhen certain conditions are met. For example, a user can indicatespecific prices or price ranges when he would want to place or cancel ablock order on Pipeline. A user can also specify the size of the blocksthat are placed, as well as the frequency with which blocks arereplenished after fills. In addition, the Pipeline Algorithm allows theuser to coordinate the entry and cancellation of blocks on Pipeline withthe user's other algorithmic activity conducted via the subject systemin the same symbol.

Finally, to further reduce the number of times a trader must respond tothe Pipeline system, a trader can use the Pipeline algorithm to set aprice limit for automatically accepting passive counter-offers that failto execute at the reference price but fall within the NBBO, and/or todesignate the specific circumstances when he would be willing to accepta trade outside of the midpoint—for example where the current offeredprice is below the 10-minute trailing average price, or other pricevalidation methods that can be imagined to those skilled in the art.

In addition, those skilled in the art could imagine other order entryelements related to trading on the Pipeline System that not are includedhere but are covered in the scope and spirit of this application. Whenused in conjunction with either the Adaptive algorithm, theParticipation rate algorithm or any of the tactical algorithms, thePipeline algorithm ensures that a user will not miss the opportunity fora block cross while he works his order in smaller increments through thesubject system's other algorithmic offerings.

Finally, it is important to note that while the preferred embodimentonly incorporates these three strategic algorithms, other embodimentswhich include other algorithms, either those associated with the subjectsystem or offered by third parties (e.g. brokers and independentvendors), can easily be imagined by those skilled in the art and areincluded in the scope and spirit of this application. In addition, oneskilled in the art could also imagine an embodiment wherein the subjectsystem includes a strategic algorithm which employs the same mechanismsused by the Adaptive and Execution Rate algorithms to select, manage andswitch between the subject system's universe of proprietary tacticalalgorithms to select, manage and switch between a set of third partyalgorithms. Such a strategic algorithm would eliminate the need for auser to have to choose which of the hundreds of broker-sponsored/thirdparty algorithms are best suited to work an order under existing marketconditions, rather he could rely on the subject system's real timeselection and management mechanisms to choose and then switch between aset of third party algorithms as the order parameters and marketconditions evolve over time.

The Subject System's Tactical Algorithms:

In addition to the “Strategic” algorithms described above, the subjectsystem also offers the user a selection of tactical algorithms. Directaccess to these tactical algorithms are provided for the user who wantsto use algorithms to automate order entry but does not want to turn overthe selection and management of tactical algorithms to a strategicalgorithm. As previously defined, a tactical algorithm is an algorithmconcerned with placing and canceling orders according to a single set ofpre-programmed instructions. Providing a selection of tacticalalgorithms allows the user to automate his trading while maintaining ahigher degree of control over the placement and cancellation of orders.It is important to note that when the user employs tactical algorithms,he must both select the algorithms and set the parameters for thealgorithm's operation. In addition, he must manually change theseoperating parameters to maintain his strategy as market conditionschange. The subject system enables the user to set and alter theseparameters through simple drag and drop motions, as will be described inmore detail below.

However, while the use of these tactical algorithms does require greaterinvolvement from the user, a trader can use these tactical algorithms toautomate a complex trading strategy by initiating a plurality oftactical algorithms for the same stock. Here is an example: a userinitially activates a single algorithm to buy 800,000 shares of EBAY up$30.55. However, let's say that after he initiated that algorithm, herealized that the stock was more volatile than he originally thought.Instead of canceling that first buy algorithm, he decides to layer a fewmore tactical algorithms to create a more nuanced strategy to match thevolatility of the market. So in addition to the original buy algorithm,he adds another algorithm to buy aggressively when the price drops below$30.48, another to sell passively when the price moves up to $31.57, andanother to sell aggressively if the price moves above $31.60.

Once the user has initiated all four of these tactical algorithms forEBAY, the subject system's “unified” setting ensures that the user canmanage all these individual tactical algorithms as part of unifiedstrategy. This unified setting treats every order from a user-initiatedtactical algorithm associated with a given symbol as part of a largeraggregate order. For example, as soon as two or more algorithms areassociated with a single symbol, the subject system automaticallycoordinates the activity of each of those algorithms against a single,aggregate position goal. That aggregate position goal is alwaysestablished when the trader launches the first algorithm for thatparticular symbol—in this example the order to buy 800,000 shares ofEBAY. This coordination is preferably enabled by keeping track of allopen orders, the position goal, the achieved position, and limit thesize of new orders to be placed on the market in such a way that the sumof the achieved position plus open orders never exceeds the initial,aggregate position goal.

In cases where both buy algorithms and sell algorithms are being used,the algorithms that are working in the opposite direction to the statedposition goal are limited to place orders that will never in aggregateexceed the original aggregate position goal. For example, if the user'sinitial aggregate position goal is to buy 800,000 shares of EBAY, andthe achieved position is 500,000 shares of EBAY, with 100,000 sharespending (potentially leading to a position of 600,000) at the time theadditional three algorithms are initiated; then an algorithm seeking toplace a new buy order will be limited to a maximum of 200,000 shares,and an algorithm seeking to sell will be limited to 500,000 shares.

Therefore as a result of this “unified” setting, the subject systemautomatically coordinates the order activity driven by alluser-initiated tactical algorithms for a particular symbol such thatthose algorithms will only place orders that both follow theirpre-programmed logic and keep the trader's position inline with thatoriginal position goal. This feature enables the trader to employ aplurality of algorithms with specialized tactics in a coherent strategywithout having to micromanage his order position. In addition, thesubject system provides the trader with multiple high-level visual cues(described in detail below) that allow him to track his progressrelative to his aggregate position goal. As a result, the subject systemis able simultaneously to pull the trader away from order levelmicro-management while enhancing his capabilities for higher levelstrategy management.

Deciding on an Algorithm

As previously noted, a user has the ability to choose between strategicand tactical algorithms when using the subject system to automate histrading strategy. Because the direct selection of tactical algorithmsrequires more thought and management by the trader, the subject systemincludes two tools to help the users who decide to select manuallytactical algorithms rather than relying on the strategic algorithms tomange this selection for them. These two tools are the Execution RateScale and the Behavior Matrix, both of which are designed to help thetrader understand how each tactical algorithm will interact with themarket.

The Execution Rate Scale is a tool that provides users with acomparative measure of the expected rate of execution for each of thedifferent tactical algorithms. The purpose of this scale is to helpusers understand how aggressive each tactical algorithm is on a relativebasis by presenting a scale that indicates where each of the availabletactical algorithms falls on a scale of aggressiveness—both relative tothe other tactical algorithms and as compared to a percentage scale thatrepresents expected rates of execution. The scale appears on the subjectsystem's Dashboard whenever a user drags a symbol from a Watch List overone of the tactical algorithms, with the selected tactical algorithmhighlighted in yellow to ensure the user knows which algorithm he isconsidering at the time.

For the purpose of this application, “Watch List” is defined as arepresentation 100 of a collection of symbols 102 the user is interestedin monitoring (FIG. 1). The Watch List may also be connected to theuser's Order Management System (OMS) in such a way that thesymbol-representing cells within the Watch List are linked toinformation about the user's order(s) in that symbol. The example shownin FIG. 1 is a Watch List used in Pipeline Trading System's Graphic UserInterface (GUI), but any other version of a “Watch List” as known orcould be imagined by those skilled in the art can also be used inconjunction with the subject system.

When the user rolls over the symbol 102 in the Watch List that he wantsto trade, that symbol is shown as an enlarged symbol 202, so as to makeit clear to the user which symbol he is selecting (FIG. 2). Then if theuser clicks on that enlarged symbol, the “Dashboard” 300 appears at thebase of the Watch List (FIG. 3). For the purposes of this application,the “Dashboard” is the element of the subject system's user interfacewhere the available algorithms are presented to the user. In thepreferred embodiment the dashboard only appears when a user clicks on anenlarged symbol in the Watch List so as to limit the amount of terminalreal estate occupied by the subject system's user interface. However inan alternate embodiment the dashboard is a permanent aspect of thesubject system's user interface, visible whenever the subject system'suser interface is open on a user's desktop or terminal.

In the example shown in FIG. 3, the dashboard 300 includes the followingelements. The icons for algorithms include those for strategicalgorithms (an adaptive algorithm 302, a pipeline algorithm 304, and anexecution rate algorithm 306) and for tactical algorithms (a socialitealgorithm 308, a reservist algorithm 310, a spray algorithm 312, and asloth algorithm 314). The various algorithms are explained elsewhere inthe present disclosure.

FIG. 4 shows what it looks like when a user has dragged a symbol (hereEBAY) over one of four available tactical algorithms, the “Socialite”tactical algorithm, revealing both the Execution Rate Scale 402(described above) and the Behavior Matrix 404. It is important to notethat while FIG. 4 depicts an embodiment with four tactical algorithms(the “Socialite,” “the Reservist”, “the Spray,” and “the Sloth,”)limitless other embodiments with any number and variety of tacticalalgorithms, both proprietary to the subject system and provided by thirdparty providers, can easily be imagined by those skilled in the art andshould be understood as encompassed within the present invention.

The second tool for helping users select a tactical algorithm is TheBehavior Matrix 404. The Behavior Matrix is an element of the subjectsystem's user interface that gives the user information about thecharacteristic behaviors of the tactical algorithms available via thesubject system. Examples of these behavior-defining characteristicsmight be whether the algorithm “posts” orders or “takes” orders, places“reserve” orders or maintains a visible “presence,” or if it placesorders on “ECNs” or on “DOT.” Other examples could be whether analgorithm “kicks” or “punches,” “ducks” or “blocks,” “stands” or “runs.”

It is important to note the terms used above are only examples ofcharacteristic descriptors, and that any set terms can be used todescribe behavior-defining factors, assuming they have meaning for thetraders and serve to describe how the algorithms will behave indifferent market conditions. The purpose of the matrix, regardless ofthe terms used, is to give the trader information about how eachalgorithm will operate without requiring him to understand the specific,detailed logic that drives the algorithm's operation.

To access the Behavior Matrix, the user can either roll the mouse ordrag a symbol from the watch list over one of the icons that represent atactical algorithm (Again, see FIG. 4). When the user takes this action,that tactical algorithm's Behavior Matrix will appear behind thealgorithm's icon. For example, in FIG. 4, the user has dragged the EBAYsymbol over the “Socialite” icon, one of subject system's the tacticalalgorithms. By looking at which cells the “dots” of the Socialite's iconoccupy in the matrix, the user knows which combination of factorscharacterize the behavior of that algorithm. Looking at the Socialiteexample, the user knows that that algorithm will “post” orders ratherthan “take” orders, place orders on both “ECNs” and “DOT” depending onthe available liquidity, and that it will maintain a visible “presence”on the market rather than just placing “reserve” orders. If a dot fallsinside a middle cell with a double arrow, (as it does in this example),it means the algorithm will display both of the characteristics withinthat row depending on the circumstances. It is important to note thatthe Behavior Matrix solves one of the most pressing problems inalgorithmic trading: the need for traders to understand the generalbehaviors of a particular algorithm without having to know or understandthe algorithm's underlying logic.

Drag and Drop Algorithm Selection and Initiation

Once a user has decided which algorithm he wants to use and is ready toinitiate an algorithm, all he has to do is drag the symbol he wants totrade from his Watch List and drop it onto the icon on the dashboardthat represents the algorithm he wants to use. To ensure the user isaware which algorithm he is selecting, the background of the selectedalgorithm is highlighted. If the user's Watch List is connected to hisOMS in the preferred embodiment, this action of dropping the symbol onan algorithm representing icon automatically launches the algorithm. Asa result, the subject system allows traders to initiate complex tradingstrategies with a single motion; here a “drag and drop,” but othersingle motion techniques as can be imagined by one skilled in the artalso apply. With a simple drag and drop on one of the three strategicalgorithms, the user of the subject system is able to set in motion acomplete trading strategy which automatically selects, initiates andthen adjusts the algorithm or set of algorithms required to execute theuser's order based on the user's order inputs, real-time analysis ofmarket conditions, and reinforcement feedback on the algorithms' impacton the market.

Alternatively, if the user's OMS is not connected to his Watch List, orif it is connected but the user has deactivated the auto-launch feature;dragging the symbol over any of the algorithm-representing icons (exceptthe Pipeline Algorithm) will reveal a “Fishbone” 502 at the base of thealgorithm's icon or its behavior matrix 404 (FIG. 5). For the purposesof this application, the Fishbone is a dynamic, vertical price scalethat represents the current bids and offers for the selected symbol. Thetrader can then drop the symbol at his limit on the price scale; therebysetting the algorithm's limit and initiating the algorithm. In theinstances where the user's OMS is connected to the subject system butthe user has disabled the auto-launch feature, the Fishbone allows theuser to set a limit for the algorithm that is more passive than thelimit contained in his OMS. However, as a price-protection precaution,the user cannot use the Fishbone to set a limit for an algorithm that ismore aggressive than the limit contained in his OMS. To make the limitmore aggressive, the user must make that change within the OMS itself.

While dragging and dropping a symbol anywhere on the icons thatrepresent the Adaptive algorithm or any of the tactical algorithms willeither initiate the algorithm (if watch list is connected to the OMS) orlaunch the fishbone (if the OMS is not connected to the watch list or ifthe OMS is connected but auto-launch feature is disabled); to initiatethe Execution Rate algorithm or to launch its Fishbone, the user mustdrag and drop the symbol onto the specific execution rate that he wantsto set for the algorithm (FIG. 6). In addition, dragging and dropping asymbol onto the Pipeline Algorithm in the instances where the watch listis not connected to the OMS or it is but the auto-launch feature isdisabled will not launch a Fishbone. Instead it will launch an orderentry box 700 where the user can set all of the parameters that relateto the timing, frequency and circumstances (as detailed above) for whena block order should be placed or canceled on Pipeline (FIG. 7).

In the cases where the watch list if not connected to the user's OMS orit is connected but the user has disabled the auto-launch feature, theuser can initiate an algorithm by hitting the buy (or sell) buttoninside the Fishbone or the order entry box for the algorithm he hasselected.

The Provision of Real-Time Feedback Regarding Algorithm Operation andOrder Execution

Once an algorithm is initiated, either automatically or by the user, a“Positions” window 800 replaces the dashboard and fishbone at the baseof the Watch List (FIG. 8). For the purpose of this application, the“Positions” window is defined as the aspect of the subject system thatprovides users with real-time feedback regarding the algorithms' orderactivity, the execution tactics being used by the active algorithms, andthe effectiveness/impact of these tactics.

In the first column within the Positions window, users are given abutton 802 that they can use to cancel all of the orders that have beenplaced by the algorithms working on that order. Looking at the remainingcolumns in the Positions window from left to right, the user can see:the side of the order being worked by the algorithm (804), the symbolbeing worked by the algorithm (806), a list of trade details forexecuted orders (808—revealed when the user clicks on the binocularicon, more detail below), how much of the order has been completed vs.how much of the order remains unfilled (810), the average price acrossall executed orders in that symbol (812), the algorithm or set ofalgorithms being used to work a particular symbol along with its averageexecution rate (814), and feedback regarding the tactics in use andwhether or not these tactics are successful or need updating (816).

This Positions window is unique in the world of algorithmic tradingproducts in that it providers users with the “Details,” “OverallProgress,” “Routes”, and “Strategy Progress” columns to give the userinformation about which algorithms are working a particular symbol, theshares those algorithms have filled, the tactics being used by theactive algorithm or algorithms, the impact of these tactics on themarket, and the effectiveness of these active algorithms; rather thanexpecting users to trust what an algorithm is doing without giving themany specific information about what it is actually doing. In addition,the Position window also provides the user with quick and easy access toa range of functionality for managing active algorithms.

In the column labeled “Overall Progress,” the subject system usesdynamic bars in different colors to provide a real-time representationof how much of the user's order has been completed and how much of theorder remains unfilled. In FIG. 8, in the overall progress monitor 810,the blue bar 818 represents the portion of the order that has alreadybeen filled by the algorithm, the orange bar 820 represents the portionof the order that is active, but has yet to be filled, and the red bar822 represents the portion of the order that is unfilled and inactive.While blue, orange and red coloring is used in this example, any othercolors or patterns could be used for the same effect.

In addition, each of the colored bars 818, 820, 822 contains aninequality that gives an approximation of the number of sharesrepresented by that bar. As shown, there are a “>5 mm” on the blue bar,“>2 mm” on the orange bar, and “>3 mm” on the red bar; meaning that onthe EBAY order represented in this line of the Positions window in FIG.8, more than five million shares have been filled, more than two millionare unfilled and active, and more than three million shares are unfilledand inactive.

In addition to seeing the approximate values for shares filled, activeunfilled and inactive unfilled on a particular order; the user can alsouse the Overall Progress column 810 to see the exact number of sharesand the percentage of the total order represented by each of these threecategories. When the user scrolls over and pauses on any area of theOverall Progress column 810, an information box 900 appears (FIG. 9)with the following information: the exact number of shares that thealgorithm has filled versus the total number of shares in the order, theexact number of shares that are active, unfilled versus the total numberof shares in the order, the exact number of shares that are inactive,unfilled versus the total number of shares in the order, the percentagefor each of these categories, the average price across all of the filledshares and whether or not there is a “Market Participation Warning” 902.

A Market Participation warning 902 is an indication that the subjectsystem uses to let the trader know that the number of unfilled shares onthe order is greater than the subject system's projected remainingvolume in the market for that symbol for the remainder of the tradingday. To calculate whether or not it needs to issue the warning, thesubject system calculates the number of shares it expects would beexecuted over a time period extending from the current time to the closeof the market. To this end, it multiplies the expected execution rate aspreviously defined herein, by the historical average volume tradedduring the time period in days past, taking the average over the last 60trading days. The Market Participation Warning is issued if the numberof unfilled shares is less than the number of shares it expects toexecute. In addition to inserting the Market Participation Warning atthe base of the information box, the red bar that represents theunfilled, inactive portion of the order in the Overall Progress columnalso flashes red where there is a Market Participation Warning.

Taken together, the elements contained within the Overall Progresscolumn offer the user a fast yet detailed perspective on the status ofhis order. However, if the user wants even more detailed informationabout his executed orders, he can click on the icon located in the“Details” column of the Positions window 808. Clicking on this iconlaunches a “Trade Details” information box 1000 (FIG. 10). The purposeof this information box is to give the user specific information on eachorder executed by the algorithm. For each executed order, the TradeDetails information box gives the user the “Strategy” that executed theorder (in FIG. 10 this is the Adaptive algorithm), the time the orderwas executed, the number of shares in the order, the average price ofthe order, and the name of the specific tactical algorithm that executedthe order.

In some instances, i.e. when a user has initiated a tactical algorithm,the “Strategy” information and the “Algorithm” information will be thesame since as a “strategy” a tactical algorithm only follows one set ofbehaviors. However in the instances when the user initiates a strategicalgorithm, the strategy and algorithm information will be different. Forexample, if the user initiates the Adaptive algorithm, the Strategycolumn will reflect that it is the Adaptive algorithm at work, while the“Algorithm” column will reflect which of the specific tacticalalgorithms the Adaptive algorithm used to complete that segment of thelarger order. In the example of FIG. 9, the Adaptive Algorithm used the“Reservist” tactical algorithm to execute the first portion of theorder, while it used the “Socialite” tactical algorithm to execute thesecond and third portions of the order. Providing this level ofinformation regarding a strategic algorithm's logic and execution is arevolutionary development in the world of algorithmic tradingproducts—for the first time, the user is being informed about thespecific tactics the algorithm is using to complete the order, notsimply expected to trust a “black box.”

For even more specific information about the tactics being used by thealgorithm, the user can turn to the Behavior Matrix included in the“Strategy Progress” column 816 on the Positions window. While theBehavior Matrix is used in the Dashboard to allow the user to review thecharacteristic behaviors of the tactical algorithms before they areactive, when it is used in the Strategy Progress column, it allows theuser to see the characteristic behaviors of the algorithms after theyhave been initiated. As previously noted, examples of thebehavior-defining characteristics that can be used in the matrix arewhether the algorithm “posts” orders or “takes” orders, places “reserve”orders or maintains a visible “presence,” or if it places orders on“ECNs” or on “DOT.”

In the “Strategy Progress” area 816, each of these characteristics isrepresented by a cell labeled with the name of the characteristic. FIG.8 shows a Post call 824, a Take call 826, a Reserve call 828, a Prescell 830, an ECN cell 832, and a DOT cell 834. As a particular tacticalalgorithm works an order, the cells that define the tactics of thatalgorithm are highlighted, letting the user know what kinds of tacticsthe algorithm is using at a given moment in time. If, for example, theuser has employed the “Adaptive Algorithm” as described above, and theautomated selection function determines that the level of market impactcaused by an active algorithm is too high; then the system notifies theuser of the algorithm's (or tactic's) failure to meet the orderrequirements and its pending cancellation by outlining in red thecell(s) in the Behavior Matrix that represent the failingtactic/algorithm. When the subject system cancels that algorithm or thattactic, the same characteristics that were outlined in red arehighlighted with red backgrounds. Then once the subject system hasselected and initiated a new algorithm or a tactic better suited to thenew market conditions/dynamics, the characteristics of that newlyinitiated algorithm/tactic are highlighted in green.

By using the black background highlights in conjunction with the red andgreen color signals, the user knows which tactics are being used tocomplete his order, as well as which tactics are successful or needupdating. Plus, the user is given valuable information regarding marketcolor (feedback on how the market is performing in real time) each timehe see that the subject system has made a change intactics/algorithms—he knows there has been a change in the market or amarket event significant enough to warrant an entirely new tactic. Inaddition, the user can enable a feature which uses the strategy progressarea to display which tactical algorithm is active, when there is achange in tactics, and the reason for that change. For example the usermight see a message stating, “Transition to Sloth due to sensitivity topostings on ECNs.”

FIGS. 11A-11H give a series of examples as to what a user might seewhile the Adaptive algorithm was working his order. FIG. 11A shows atransition to Sloth due to sensitivity to posting on ECNs. FIG. 11Bshows Sloth working. FIG. 11C shows a transition to Socialite due tosensitivity to taking on both ECNs and NYSE. FIG. 11D shows Socialiteworking. FIG. 11E shows a transition to Reservist due to heavy marketpresence. FIG. 11F shows Reservist working. FIG. 11G shows a transitionto SlothSocialite due to excessive fill rate. FIG. 11H showsSlothSocialite working.

In addition to these fairly simplistic measures of effectivenessprovided by the red and green signaling mechanism and the pop-upmessaging system, the Strategy Progress column can also expand toprovide the user with access to a range of more complicated, continuousmeasures of effectiveness. While the red/green signaling lets the userknow if an individual tactic or algorithm is working; these more complexmeasures of effectiveness serve to provide the user with a real-timeassessment of the overall success/failure of the strategy as a whole.For example, the Strategy Progress column could also include a graphicalelement that displays a particular algorithm's participation rate in themarket since initiation. Or, it could include a ratio between theachieved participation rate and the expected participation rate. An evenmore sophisticated example would be the absolute value of the logarithmof the ratio of achieved participation rate to expected participationrate, which would provide a measure of the relative difference betweenactual and expected rates—a good indication of how well the strategy ismeeting the user's intended goal. In addition, other continuous measuresof effectiveness can easily be imagined, including any number of thebenchmarks known to those skilled in the art.

However an important point is that the subject system allows traders toemploy complex algorithms to automate their trading and gives theminsight into how the algorithms work and how well they are performingwhen active. Other systems fail to anticipate either automatic tacticswitching or the provision of market color feedback. In addition, othersystems known in the art fail to anticipate providing guidance on theexpected rate of execution or expected market impact in order to help atrader decide which algorithm to use given the current state of themarket.

FIG. 12 has been provided to give a specific example of a PositionsWindow 800′ for a user with orders in multiple stocks. FIG. 12 alsooffers a good example of what the Strategy Progress area looks like whenthe Adaptive Algorithm is executing orders and making tacticaladjustments across many symbols. Looking specifically at FIG. 12, as theAdaptive Algorithm works the user's order in VLO, it has selectedaggressive tactical algorithms that are “taking” rather than “posting”orders. In addition these aggressive tactical algorithms had beenplacing orders on both ECNs and DOT, but the Adaptive Algorithmdetermined that the tactic of placing orders on DOT was failing, so thattactical was cancelled, as indicated by the red background in the celllabeled DOT.

In the next order, an Adaptive Algorithm working the user's order inCALL initiated a passive tactical algorithm that is “posting” ratherthan taking orders, and is only maintaining orders as “reserves” ratherthan maintaining a visible “presence” on the market. This tacticalalgorithm has also been using both ECNs and DOT when it places orders,but the red outline around the DOT cell indicates that the AdaptiveAlgorithm is about to adjust tactics and stop placing orders on DOT. Inaddition, this Strategy Progress window indicates the algorithmresponsible for “posting” “reserve” orders in CALL has been recentlyinitiated because the backgrounds of these cells are green.

By simply looking at the Strategy Progress Window, the user has accessto a lot of information about both the algorithms working his order andthe effectiveness of their tactics. In addition, the user can gainvaluable information about market color and changing market dynamics bywatching and considering which tactics are failing and which aresucceeding in light of market impact tolerance. As a result, users canlook to the subject system as both a sophisticated automated tradingsystem and an indicator of changing market dynamics.

It is also important to note that if the user has initiated multiplealgorithms for a specific symbol, all of the active algorithms will berepresented by their icons in the “Routes” column 814 as in FIG. 13. Tosee the specific information offered by the other columns about eachalgorithm, all the user has to do is click on the icon in the “Routes”column that represents the algorithm he wants to see. Once he hasclicked on that icon, the information provided in each of the othercolumns will reflect the information about that particular algorithm.

Providing User Easy Access to Tools for Algorithm and Order Management.

A final aspect of the Strategy Progress area is the ability to use thissection of the Positions Window to manage the algorithm working thatparticular order. Scrolling over any of the cells in the StrategyProgress area reveals a tool bar for managing the active algorithm(s)related to that order (FIG. 14). This tool bar gives users access to arange of functionality with the click of the mouse: it allows users topause (1402) any algorithms working the order, cancel (1404) anyalgorithms working the order, re-start (1406) any algorithms that havebeen paused, launch (1408) the Trade Details Information Box for thatorder, open (1410) a Fishbone for the active algorithm, or force an“Auto-entry” (1412). In addition, in the embodiment designed for thePipeline alternative trading system, the tool bar also contains a button1502 that allows the user to accept a passive counter offer at the NBBO(FIG. 15).

An auto-entry is when the user forces the active algorithm to enter itsnext pending order immediately, overriding any order-entry delaysrequired by the algorithm's logic. This feature is useful in theinstances when a trader knows there is size that he wants to take anddoes not wait to wait for the algorithm's logic to determine that thetime is right to enter the order. It also ensures that even if a traderemploys a passive algorithm, or an algorithm with a low participationrate that he still has the ability to enter orders aggressively ifcircumstances require him to do so.

Opening a Fishbone for an active algorithm gives the user the ability tosee filled and pending orders, cancel pending orders, or adjust thealgorithm's limit price. As soon as a user initiates an algorithm,either through the auto-launch or by manually dropping a symbol onto aFishbone in the Dashboard, that algorithm is represented visually on theFishbone with a color-specific vertical column that extends up or downalong the vertical price scale (depending if it is buying or selling) tothe algorithm's limit price. In the example in FIG. 16, an order in EBAYis being worked by the Adaptive algorithm with a limit to buy up totwenty cents. To help the user track which algorithm is represented onthe fishbone 1602, the color of the vertical column 1604 matches thecolor of the algorithm's icon on the Dashboard. Again, looking at theexample in FIG. 16, the color of the vertical algorithm representingcolumn is green to match the background of the Adaptive Algorithm'sicon. If there is more than one algorithm working on a symbol, thesevertical columns are placed next to each other along the top (or bottom)of the price scale such that the columns do not overlap or obscure eachother. These algorithm-representing columns are also interactive toolsthat can be used to manage the algorithms. To change the limit of analgorithm, all the user needs to do is catch the bottom (or top) of thebar and pull (or push) the bar to the new limit. Alternatively, the usercan alter the algorithm's operating parameters by double-clicking on anyof the algorithm representing bars. Double-clicking on a bar willdisplay a box 1702 (FIGS. 17A and 17B) which contains information aboutall of the parameters that the user can set/alter for that particularalgorithm. The two examples in FIGS. 17A and 17B illustrate the boxes1702 displayed to a user when he double clicks on a column representingthe adaptive algorithm (the first image) or the Execution Rate algorithm(second image).

Once an algorithm is active, the Fishbone also displays the orders thateach of the algorithms have placed and executed. When an algorithmplaces an order, a small block 1802 appears on the price scale next tothe price point of the order (FIG. 18). Therefore a block represents acollection of pending (active, unfilled) shares at a single price point.Users can manually cancel any pending order by double clicking on apending-order block. Then, once an order or part of an order has beenfilled, the block or blocks that represented those shares when they werepending orders disappears, and a horizontal bar representing the filledshares appears (FIG. 18).

In addition to the features already noted, the Fishbone also includes anindication of the bid/ask spread and a representation of the effectiveDepth of Book. Small grey arrows (1606, 1608 in FIG. 16) appear on theprice scale next to the price points that represent the bid and ask,while the Effective Depth of Book is represented as a gray line (1902 inFIG. 19) indicating the amount of size likely to be available at eachprice point at and above the current best offer and at and below thebest bid. The effective depth can be defined as the displayed quotesizes aggregated over multiple market destinations, as is known in theart. However, this representation of book depth fails to capture hiddenliquidity (reserve orders) or latent liquidity (orders that have not yetbeen placed on the market). For a long time the trading community hasexpressed the need for a depth of book indicator that incorporates anestimate of reserve and latent liquidity along with the aggregateddisplayed liquidity. The subject system preferably attends to this needby calculating the amount of liquidity that would be needed to push theprice of the stock through various price points. More specifically, thenumber of shares that would trade at a $20.01 offer before the pricemoved up to $20.02 would be the “effective offer size” at $20.01. Whilethis amount may be considerably larger than the displayed liquidity, itcould also be smaller that the displayed amount if it turns out that thedisplayed size was only a fleeting quote. In order to calculate aneffective offer size at a given offer price, the subject system looksback at price and quote changes to find most recent time in the pastwhen this same offer price was the best offer and said best offer wascompletely filled leading subsequently to a new higher best offeredprice. It then calculates the total number of shares that traded whilethe original offer price was available, counting shares printed at anyprice but only during the period of time during which the offer wasavailable. This total number of shares is the effective offer size; itrepresents the total number of shares required to push a security'sprice through that offered price level. Similarly for the effective bid,the subject system identifies the most recent time that this bid wascompletely consumed and counts the number of shares that traded beforethe bid was dropped. If there is no prior example in the same day ofpushing through the given bid or offer, the subject system assumes theeffective bid (offer) size is the average effective bid (offer) sizeover all other price points for which there are prior examples. A moreelaborate model for calculating the effective liquidity at each pricepoint is given in the appendix titled “An empirical study of resistanceand support on Liquidity Dynamics.” Other algorithms for inferring thelikely number of shares that can be executed before pushing the pricethrough a given bid or offer price level can be imagined by thoseskilled in the art.

To calculate “effective quote size,” as defined above the subject systememploys an algorithm that is connected to a real time feed of marketprints which includes information about every trade, including the tradeprice and the size of the trade as reported to the tape. Prints areaggregated into buckets, each bucket will be later labeled as a “buybucket” (next price move is up) or a “sell bucket” (next price move isdown). Each bucket has a low price and a high price. The first twoprices traded are the low and high of the first bucket. While a bucketis open, add all shares printed to the total share count for thatbucket. The first print above the bucket high price (or below the bucketlow price) closes the bucket; the high (low) price is the “effectiveoffer price” (effective bid price) and the total quantity in the bucketis the effective offer quantity (effective bid quantity). In addition, apair of in-memory vectors keeps the most recent value of the effectivebid size and effective offer size at each price point.

To close a Fishbone launched from the “Strategy Progress Toolbar,” theuser can click on the “x” (1610, FIG. 16) in the upper right hand cornerof the window. Finally, if the Strategy progress tool bar is not usedand the user moves his cursor away from the Strategy Progress area, thetool bar disappears until the user scrolls over the area again. This“disappearing tool bar” is a useful feature within the Strategy Progressarea as it gives the user immediate access to a wide range offunctionality without requiring use of permanent desktop real estate.

Provision of Real Time Benchmark Monitoring

In addition to providing real time feedback regarding the operations ofthe active algorithms and order executions, the subject system alsoprovides the user with real time benchmark monitoring. This real timebenchmark monitoring is provided via a dynamic dial that can bedisplayed directly below the fishbone in the strategy progress area byclicking on the “Display Benchmark Monitor” button (2000, FIG. 20) ifthe user has elected to turn this feature “on.” While active, thepurpose of the dial is to provide the trader with visually-enhanced,real-time feedback regarding the performance of his trading strategy andthe performance of the market relative to a particular benchmark throughreal-time alterations in spatial orientation, shape, size, color, shade,and texture within the dial and its surrounding area. It is alsoimportant to note that the user can customize the benchmarks he uses tomonitor his trading, and some examples include but are not limited to:market price, market average price, P&L, volume-weighted average price,time-weighted average price, closing price, opening price, or onestandard deviation of short term volatility.

FIG. 21 depicts the benchmark dial 2100 in its “inactive” state beforean algorithm or algorithms have begun to place orders to work an order.Then once an algorithm begins to work a user's order, the dynamicbenchmark monitor moves from this “inactive” state to an “active” state(FIG. 22). For illustrative purposes the following description of theoperation of the dial will use VWAP (volume weighted average price) asthe benchmark, but as previously indicated this is just one possiblebenchmark a trader could use and is in no way intended to limit thescope or application of the subject system.

Looking at the active dial in FIG. 22, there are three numbers at thetop of the dial, “+4” “8” and “−4.” The number closest to the fishbone,here a “+4” represents a measure 2202 of the trader's executions againstthe benchmark he has chosen for the dial. Because this example uses VWAPas the benchmark, in this case the number represents how much the traderis beating or missing VWAP on an average price per share basis over somepredetermined period of time. In this particular example, the trader isbeating VWAP by four cents per share, and the fact that he is beating,rather than missing VWAP is communicated by both the green color of thefont as well as the “+” sign in front of the number four.

The number closest to the dial, here a “−4” represents a measure 2204 ofthe market's current performance relative to the same benchmark. Again,because this example is using VWAP, this means that at this point intime the market is missing VWAP by four cents a share, and the fact thatthis is a loss is reflected in both the “−” sign in front of the numberand the red color of the font.

And finally, the third (middle) number represents the spread 2206between the other two numbers, and serves as a relative indicator forthe user of how his position compares to the market's current position.Again, because this example is using VWAP as the benchmark, this numberrepresents how much money the trader is making on a per share basisrelative to where the market is currently trading. Here the number is apositive eight, indicating that at the moment, the trader is makingeight cents per share.

Because these numbers represent calculations that use the trader'saverage price and the market's current price, they are dynamic metricsthat change along with movements in the market's position and thetrader's aggregate position. In addition, the information communicatedby these numbers is also displayed graphically inside of the monitor.First, as the metrics fluctuate, the bars that run through the center ofthe dial rotate about the central axis. By looking at the rotation ofeach bar relative to its horizontal or “0” position in the inactivestate, the trader can quickly assess both how the market is currentlyperforming relative to the benchmark and how the his algorithms areperforming relative to the benchmark. To assess the market relative tothe benchmark, the user can look at the displacement of the red bar 2302from the “0” position 2304 and the size and color of the pie-shaped area2306 at the center of the dial. In FIG. 23, this area is labeled, andwith a quick glance it is evident that the market is missing VVAP by asignificant margin, indicated by both the size of the pie shaped wedgeand the red shading inside that wedge.

Then to assess his position relative to the benchmark, the trader canlook at the displacement of the blue bar 2308 from the “0” position 2304and the size and color of the trapezoid shaped area 2310 along the outeredge of the dial. This area is also labeled on FIG. 23. With a quickglance at this area, it is also easy to see that the trader is beatingVWAP by a significant margin, indicated by both the size of thetrapezoidal area and the green shading within that area. As thedifference between the market or the trader's position and the benchmarkincreases, both the size of the area and the severity of the shadingwithin the area increase. Likewise, as the difference between the marketor the trader's position and the benchmark decreases, both the size ofthe area and the severity of the shading within the area decrease.

Finally, the trader can also get a quick visual indication of how wellhe is doing relative to the market by looking at the size and color ofthe band 2312 formed along the perimeter of the dial in between the redmarket representing and the blue trader representing bars. Both the sizeand color of this band help communicate to the trader if he is making orlosing money relative to the market, as well as the degree of this gainor loss.

In addition to FIG. 23, FIGS. 24A-24F are included to help illustratethe dynamic nature of the benchmark dial and demonstrate how thebenchmark dial would look over time as changes occurred in both themarket and the trader's position.

In FIG. 24A, the trader is beating VWAP by 4 cents, the market ismissing VWAP by 4 cents, and, as a result, the trader is making 8 centsper share.

In FIG. 24B, the market has moved further in the trader's favor. Now thetrader is beating VWAP by 5 cents, the market is missing VWAP by 5cents, and the trader is making 10 cents per share. Themarket-representing wedge and the trader-representing trapezoid arelarger, and the red and green shadings are darker.

In FIG. 24C, the market has turned. Now the trader is beating VWAP byonly 3 cents, the market is missing VWAP by 2 cents, and the trader isonly making 4 cents per share. Also, the sizes and color depths in theshaded areas have changed.

In FIG. 24D, with continued movement, the trader and the market are noweven, both beating VWAP by one cent. As a result, the trader is now evenwith the market.

In FIG. 24E, as the market continues to move, the trader is now missingVWAP by 2 cents, while the market is beating VWAP by 3 cents. As aresult, the trader is now losing 5 cents a share.

In FIG. 24F, in a total reversal of fortune, the market has moved suchthat the trader is in the very opposite position from where he started.He is missing VWAP by four cents, the market is beating VWAP by 4 cents,and the trader is losing 8 cents per share.

In certain embodiments, the color of the background behind the benchmarkdial also changes in color and depth of color to reflect the trader'spositive or negative deviation from the benchmark. In these embodimentsthe specific color and shade matches that of the trapezoidal area formedon the outer edge of the dial by the displacement of the blue bar fromthe “0” position and simply serves as a visual reinforcement of whetheror not the trader's selected strategy is succeeding (a green background)or is failing and in need of an update (a red background.)

Together, all of these elements give a user real-time numeric and visualfeedback regarding the status of his position relative to a benchmarkand the market. In addition, the benchmark also gives the trader avisual depiction of how close he is to meeting his aggregate positiongoal in a particular symbol at any given point in time. To display thisinformation, the background area “behind” the monitor's dial “fills up”or “drops down” as the trader's overall position in a symbol movescloser or father from meeting the initial aggregate position goal. It isimportant to note that this indicator is based on the assumption thebase of the monitor's background area represents the “zero” positionwhere the trader has made no progress towards meeting his aggregateposition goal, while the top of the dial's background area representsthe 100% mark where the trader has complete that goal. FIGS. 24A-Fdemonstrate this feature, as the gray-colored background area behind thedial is higher in each successive imagine as the trader's aggregate goalis gradually met over the course of these six images until it is totallyfilled in the final image, FIG. 24F

In addition to the real-time trading performance feedback, the monitoralso provides traders with a graphic that indicates the liquidity ratiobetween the number of shares available to buy (green) and the number ofshares available to sell (red) at the NBBO. A green area represented tothe left of a mid-line is as wide as the available shares on the bid(with each millimeter in width representing 100 shares); a red area tothe right represents the shares available on the offer. This graphic canalso be seen at the base of each of the “active” dial images in FIGS.24A-F. The purpose of the liquidity ratio is twofold: to give the tradera sense of the balance (or imbalance as the case may be) in theavailable shares on the bid and the offer, and by extension to give hima sense of the volatility of the stock. If there is an even (or close toeven) number of shares on the bid and the offer, then it is reasonablefor the trader to assume that it is a fairly stable stock that will behard pressed to move in either direction. On the other hand, if there isa distinct imbalance, it lets the trader know that the stock has thepotential to be volatile and serves as a warning to plan accordingly.

Alternate embodiments also include a measure of “price inertia” for thesymbol. The price inertia, as defined by the inventors, is the number ofshares required to move the stock one cent, and the purpose of thisindicator is to supplement the liquidity ratio by giving the trader amore specific understanding of the overall volatility of the stock he istrading. To calculate the price inertia, the subject system tracks thecumulative number of shares that print to the tape as long as the bestbid and best offer have not both changed. When both changed this numberof shares is recorded as the last available measure of instant effectiveliquidity at this point, and the cumulative share counter is reset. Theprice inertia is the trailing average of the five most recent effectiveliquidity values, signed by the direction of the aggregate price changeover these five periods (positive if the price has risen and negative ifit has fallen). Other measures of price inertia can easily be imaginedto those skilled in the art.

Providing Users With Market Contexts for Symbols Traded

While the purpose of the dynamic benchmark monitor is to give the traderreal-time feedback as to the success of his algorithmic tradingstrategy, the flip side of the dial provides the user with a customizedview of market data that gives the user a unique perspective on how aparticular stock fits into the larger context of the market. In thesubject system, this customized view of market data is called a “marketcontext,” and it is specifically designed to give the user a perspectiveon a stock's position and movement in the market relative to otherstocks that meet certain parameters. These parameters can be customizedby the user, and include but are not limited to: market sector,correlation, market cap, affinity, blotter, trading style and basket.More detailed descriptions of these parameters are provided below.

To access this “market context,” in FIG. 25A, a user simply clicks onthe “rotate” arrow 2502 at the top of the benchmark monitor. When hedoes this, he will flip the benchmark monitor over and reveal a “marketcontext” 2504, or a group of cells oriented around a central, enlargedcell (FIG. 25B). In the illustration in FIG. 26 this central, enlargedcell 2602 is IBM. Each of the cells 2604 included in the market contextrepresents a particular stock, indicated by the symbol name inside thecell. The central cell, also called the reference cell or the referencesymbol, represents the stock being traded on the associated fishbone andbenchmark monitor, again in this example IBM. The specific group ofsymbols displayed on a particular context is based on the parametersselected by the user, while the particular arrangement of those cellsrelative to the reference cell represents the degree of parametercorrelation between each cell and the reference cell. In the preferredembodiment, the subject system uses visual cues to transmit informationin a way consistent with “self organizing map technology” as known tothose skilled in the art.

The user can return to the view of FIG. 25A by clicking on the arrow2506. There is also a green and red liquidity ratio 2606 at the base ofeach cell in the market context. The market context includes either theNBBO or in the embodiment for Pipeline Trading Systems, as displayed inFIG. 26 as 2608, the Block Price Range. Clicking the “change parameter”arrow 2610 allows the user to scroll through the various contextparameters that are available.

The number of stocks the subject system displays in any given marketcontext can be customized by the user and the map will auto-resize toaccommodate the number of stocks the user chooses to include. If at anypoint a user decides that he wants to add a stock that is not includedin a context, all he needs to do is drag and drop that symbol from thewatch list onto the market context. When the symbol is dropped onto thecontext, it automatically “snaps” into the appropriate place relative tothe other symbols.

In addition to showing the relationships between the reference symboland the other symbols, every market context also provides the user withspecific information about each symbol included in the context. Morespecifically, every market context displays the National Best Bid andOffer (NBBO) for each symbol included in the context or in the versionof the subject system specifically designed for Pipeline Trading Systems(as in FIG. 26), the Block Price Range replaces the NBBO. Each contextalso includes a “liquidity ratio” for every symbol. This ratio looks andoperates in the same manner as the liquidity ratio at the base of thebenchmark dial and is represented graphically at the base of each cellin the market context. As on the benchmark monitor side, the purpose ofthe liquidity ratio is to give the user a rough indication of how manyshares are available on the bid and on the offer at the current NBBO,and serves as a high level indication of volatility of the stock. In analternate embodiment, the market context also displays directionality ofeach stocks price movement through the color of each symbol's font. Ifthe average movement of a stock's price over a user-specified period isupward, the symbol's font is blue. On the other hand, if the averagemovement of a stock's price over that period is downward, the symbol'sfont is orange.

Finally, in the version of the subject system adapted for PipelineTrading Systems, the market maps also convey information from Pipeline'sproprietary watch list, called the Pipeline Block Board. Looking at amarket context like the example in FIG. 26, the user can tell for eachsymbol whether or not the stock is currently active on the PipelineBlock Board (the symbol's cell has an orange background), if it iscurrently inactive but was active earlier in the day (the symbol's cellhas a grey background), or if it is inactive now and has been inactiveall day (the symbol's cell has a white background). In addition, thecontext indicates if Pipeline has printed a block in a particular stockby giving those cells a three dimensional appearance.

Individually, each of these indicators presents a very high level ofinformation. However, when these indicators are presented in concert,across multiple stocks organized by relational parameters, they providethe trader with a valuable snapshot of the market's position and itsrelative movement.

As noted above, the user can choose from a range of parameters whencustomizing a market context. These parameters include, but are notlimited to: market sector, correlation, market cap, affinity, blotter,trading style and baskets. The concepts behind the market sector,correlation, and market cap parameters will be obvious to those skilledin the art; however for the sake of clarity we will provide moredetailed explanations for the affinity, blotter, and trading styleparameters. The basket parameter is described in a separate section asit enables functionality that is distinctly different from thefunctionality of the other parameters.

The “affinity” parameter refers to grouping securities based onclustering in a multi-factor model. For example, a set of stocksrepresenting companies with divergent business models, but which aresubject to the same systemic economic risks (i.e. interest-ratemovements, energy prices, etc.)

The “blotter” parameter simply creates a context that includes all ofthe symbols in a user's blotter. This map offers the user a quick way toget a high level perspective on the movement and position of all of thestocks in his blotter, or to build a basket with symbols from hisblotter (as described below).

The “trading style” parameter is a concept specific to the subjectsystem. This parameter displays the set of stocks that “behave” in asimilar manner to the reference stock when traded by the same algorithmor algorithms. The subject system's historic, collective informationabout how a stock reacts when it is traded by one of the subjectsystem's algorithms is used to inform this parameter. In addition, whena user selects this context, right clicking inside the context displaysa ranked list of the subject system's algorithms according to theirsuccess in trading that set of stocks. This context is a particularlyinnovative feature as it simultaneously gives the trader a group ofstocks that share common trading characteristics and tells him the bestalgorithms to use on those stocks. It is important to note that anycombination of parameters can be used in a single market context. Whenmore than one parameter is used, the subject system simply aggregatesand correlates the data from each parameter, and then builds a contextbased on the final output of that correlation. Because of this feature,the subject system's customized market contexts can range from simple,single-parameters contexts like “Large Cap Tech” in FIG. 26 toextraordinarily complex, multi-parameter contexts.

When the user configures the subject system, he chooses a default set ofparameters for his market contexts. This default setting isautomatically used to build a context as soon as the user initiates analgorithm. Therefore, when the user flips over the benchmark monitor toaccess a market context, he automatically sees a context based on thosedefault parameters. If the user decides he wants to change parametersand see a different context, all he has to do is right click the “changeparameter” arrow on the top of the market context (FIG. 26). Clicking onthis arrow automatically shifts the parameter for the market context andthe new parameter is indicated in the title to the left of the arrows.In an alternate embodiment a “change parameter” button is used insteadof the arrows. Clicking on this button launches a list of all of theparameters with check boxes next to each parameter. The trader can thenselect all of the parameters he wants to include in his new context, andthen hit the “rebuild context” button at the base of the list to createa new context.

In an alternate embodiment, a trader can launch a market context beforehe initiates an algorithm, allowing him to bypass the default settingsand build a context based on a different set of parameters. To launch amarket context directly from the watch list, the user drags the “marketcontext” icon located on the dashboard and drops it onto the stock inhis watch list that he wants to use as the reference symbol for thecontext. In our example, the user would drop the “market context” iconon top of IBM in his watch-list to make a market context for IBM. Afterthe user drops the “market context” icon onto the reference cell (in ourcase IBM) in the watch-list, the reference cell expands while thesurrounding cells in the list simultaneously slide and shrink toaccommodate the expansion of the reference cell without impacting thespecific order or arrangement of the watch list. (The purpose of thisenlargement is to make it clear to the trader which symbol he had put in“market context mode.”) At this point, the “market context” feature hasbeen engaged, and the user can customize the parameters for his marketcontext. Right-clicking inside the expanded reference cell in thewatch-list displays a list of the context parameters along with acheck-box for each parameter. Once the user has selected the parametershe wants to use in his context, he clicks the “build context” button atthe base of the parameter list, and a market context is launched in aseparate window. It is important to note that there is no limit to thenumber of market contexts that a user can have active at any given time.When a user is not looking at a particular context, he can eitherminimize the context or close it completely, but in the course of atrading day a user can activate and maintain as many contexts, for asmany reference symbols as he sees fit.

In the same way that a trader can use the benchmark monitor to accessthe market context if he launches the monitor first; he can use themarket context to access the benchmark monitor if he launches the marketcontext first. By clicking the green “rotate” arrow at the bottom of themarket context, the user can flip over the map and see the benchmarkmonitor for the reference symbol.

An additional feature of the subject system allows the user tostreamline the process of launching customized “market contexts.” Everytime a user chooses a combination of parameters, he has the option tosave and name that particular combination. For example, a user mightchoose to build a context based on the market sector, affinity, marketcap and trading styles parameters knowing that he will use thatparticular combination on a regular basis. To avoid repeating theprocess of dropping the “market context” icon and selecting thatcombination each time he wants to build that particular context, he canchoose to name and save that combination, using the “save as” feature atthe parameter selection step. Once he has named and saved thatcombination, it will appear as a labeled icon next to the “marketcontext” icon on the watch list. Then the next time he wants to use thatsame parameter combination to build a context all he has to do is dropthat combination's icon onto a reference symbol, automaticallygenerating a context with that combination of parameters in one, easystep.

A final feature related to the market contexts is the ability to use thecontexts to build baskets which can then be traded using the availablealgorithms. If a user selects the “basket” parameter in conjunction withany of the other parameters (market sector, correlation, market cap,affinity, blotter, trading style), he activates the feature that enableshim to create a customized basket. To build a basket when the “basket”feature is enabled, the user simply left-clicks on each of the symbolsin his market context that he wants to include in the basket. If a userwants to include a stock that is not displayed on his context, all hehas to do is “drag and drop” the symbol from the watch list onto thecontext. When the new symbol is dropped on the context, it automatically“snaps” into the appropriate place relative to the other stocks, and canthen be included in the basket. Once the user selects all of the symbolshe wants to include, he uses the “save as” feature on the market contextto name and save the basket. This “save as” feature is always present onthe market context; however it is only “active” when the basketparameter is enabled.

Once the basket has been named and saved, that basket becomes thereference cell, replacing the original reference cell. In our example,if the user created a basket and named that basket MONEY, the referencecell would become MONEY replacing IBM. At the same time, the name of thebasket also appears as symbol on the watch list, ensuring that a useronly has to create a particular basket one time. Once the basket becomesa symbol on the watch list, it can be treated in the same manner as asingle-stock cell on the board; thereby allowing a user to apply thefunctionality behind any icon to the entire basket of stocks with asingle click.

For example, if a user has created an icon for a particular combinationof market context parameters, dropping that icon onto the MONEY basketsymbol will create a market context with those parameters for the entireset of stocks in that basket. Or in another example, if a user drops theMONEY basket symbol on one of the algorithm representing icons, thesystem will automatically begin trading every stock in that basket withthe same algorithm. A user is preferably enabled to set a percentualtolerance level for proceeding at different rates with variousconstituents of the basket. The target number of shares of a given itemin the basket (e.g. IBM) is the total number of shares to be acquired atcompletion multiplied by the average completion rate of the entirebasket (dollars traded versus marked-to-market dollar value of thebasket); the lower and upper bounds on the desirable position in IBM isset by applying plus or minus the tolerance percentage to this targetnumber of shares. Again taking the above example if the IBM order for100,000 shares is part of a basket that has achieved 15% completion bydollar value and the tolerance level is set to 20%, then the subjectsystem's current target completion for IBM would be 15,000 shares andorders will be placed on the market in such a way that the sum ofachieved position plus open buy orders will not exceed 18,000 shares andthe sum of achieved plus open sell orders will not fall below 12,000shares. In that way, the activity of a plurality of agents on both sidesof each constituent of a basket can be coordinated towards achieving aunique execution trajectory with set tolerance on relative rates ofexecution of the constituents.

FIG. 27 shows a block diagram of a system 2700 on which any of thedisclosed embodiments can be implemented. A server 2702 communicatesover the Internet 2704, or another suitable communication medium, with auser's computer (or other device such as an Web-enabled cellulartelephone) 2706. The software to implement any of the embodiments can besupplied on any suitable computer-readable medium 2708. The computerpreferably includes a microprocessor 2710, a display 2712 for displayingthe user interface described herein, input devices such as a keyboard2714 and a mouse 2716, and a communication device 2718, such as a cablemodem, for connecting to the Internet 2704.

An overview of the operation of the preferred embodiment will be setforth with reference to the flow chart of FIGS. 28A-28C2, which shouldbe understood in relation to the disclosure given above. Rectanglesrepresent user actions, while ellipses represent system actions.

In FIG. 28A, step 2802, the user initiates the graphical controlinterface, which is then displayed to the trader. In step 2804, thesystem displays the dashboard, which includes a display of all availablestrategic, tactical and third-party algorithms. In step 2806, the userreviews the available algorithms by rolling over the icons whichrepresent each strategic, tactical and third-party algorithm. When theuser rolls over an available tactical algorithm, then, in step 2808, thesystem displays the execution rate scale and the behavior matrix. Fromeither step 2806 or 2808, the user proceeds to step 2810, in which theuser selects one of the available algorithms by dragging the symbolwhich the user wants to trade from the watch list and dropping it on theicon in the dashboard which represents the algorithm which the traderwants to use.

If it is determined in step 2812 that the user watch list is connectedto the OMS, then, in step 2814, the system automatically initiates thealgorithm when the user drags and drops the symbols onto the icon,pulling order parameters from the OMS. If it is determined in step 2816that the user watch list is not connected to the OMS, then one of thefollowing sequences of events occurs, based on the user's choice. If theuser drags the symbol over the Pipeline algorithm in step 2818, then, instep 2820, the system displays the order entry box, and in step 2822,the user enters the order parameters. If the user drags the symbol ontoany algorithm other than the Pipeline algorithm in step 2824, then, instep 2826, the system displays the fishbone, and, in step 2828, the userdrops the symbol onto the desired limit price on the fishbone's dynamicprice scale. Either way, the system initiates the algorithm in step2830, and the overall process proceeds to FIG. 28B.

The system generates the market context for the symbol(s) being tradedin step 2832 and/or, in step 2834, displays the positions windowcontaining information on the progress of the active algorithms andchecks to see whether there is enough time left in the trading day tocomplete the user's order. If it is determined in step 2836 that thereis not enough time, then in step 2838, the system issues a “marketparticipation” warning in the positions window display which tells theuser that there may not be enough time remaining in the trading day tocomplete the order.

After step 2832, 2834 or (if applicable) 2838, the user reviews theinformation provided by the system in the positions window and/or themarket context in step 2840.

The user can then click on or roll the mouse over the “Details” area ofthe positions window in step 2842. In step 2844, the system displays a“Trade Details” information box which shows user-specific informationabout each order generated by the algorithm. Alternatively, the user canclick on or roll the mouse over the “Overall Progress” area of thePositions window in step 2846. In response to step 2846, the systemdisplays an “overall progress” information box in step 2848, which givesexact numbers regarding the numbers of shares which have been filed,which are active and unfilled and which are inactive and unfilled, aswell as whether or not there is a market participation warning (asdetermined in step 2838).

After step 2840, 2844 or 2848, the user can do either of the following.In step 2850, after reviewing the information in the positions window,the user can decide not to make any changes to the orders or the activealgorithms. Alternatively, in step 2852, after reviewing the informationin the positions window, the user can decide to look at the orderprogress in greater detail and/or make some changes to the orders and/orthe active algorithms by clicking on or rolling the mouse over the“Strategy Progress” area of the positions window, whereupon the processproceeds to FIGS. 28C1 and 28C2.

In step 2854, the system displays a disappearing tool bar for managingthe active algorithms. In response, the user can do one of three things.In step 2856, the user can click on the buttons in the tool bar to pauseor cancel the active algorithm(s), whereupon the system pauses orcancels them in step 2858. In step 2860, the user can use the buttons inthe tool bar to display the fishbone for the active algorithm(s),whereupon the system displays the fishbone in step 2862. In step 2864,the user can use the buttons on the tool bar to force an “auto-entry,”whereupon, in step 2866, the system automatically enters its nextpending order, overriding any order entry delays required by thealgorithm's logic.

In response to step 2862, the user can do one of the following fourthings. In step 2868, the user can push or pull the vertical bar(s) onthe fishbone which represent the active algorithm(s) to change thelimit(s) of the algorithm(s), whereupon, in step 2870, the systemupdates the algorithm limit price based on the user's manipulation ofthe vertical bars. In step 2872, the user can change the orderparameters by double clicking on the vertical bars which represent theactive algorithm(s) to access an order information box, whereupon, instep 2874, the system updates the order parameters based on any changeswhich the user has made in the order information box. In step 2876, theuser can cancel discreet orders by double clicking on the “pendingorder” boxes on the fishbone, whereupon, in step 2878, the system cancancel any orders represented by the pending order boxes which the userhas double-clicked.

The fourth option is more involved. In step 2880, the user can click onthe “display benchmark monitor” button at the base of the fishbone. Inresponse, in step 2882, the system displays the benchmark monitor dial,providing visually enhanced, real-time feedback regarding theperformance of the user's trading strategy and the performance of themarket relative to a particular benchmark. In step 2884, the user usesthe rotate arrow at the top of the benchmark monitor to rotate the dialto display the market context. In step 2886, the system displays themarket context generated in step 2832.

The user can choose not to make any changes to the market context instep 2888. Alternatively, in step 2890, the user can modify the marketcontext by adding or removing symbols, using the “change parameter”arrow to change the parameters, or building a custom basket of symbolsfor trading. In step 2892, the system displays the user-modified marketcontext.

Another variation of the preferred embodiment will be set forth indetail with reference to FIGS. 29-33. As shown in FIG. 29, the traderclicks and drags a symbol onto the Pipeline Block icon 304 or actionicons in a toolbar to participate in the market. The trader canconfigure an optional delay to start participating with trader settingsdialog. The following action icons appear when scrolling over theAlgoMaster icon 2902: The Pipeline Block 304 places a block order onPipeline, and the Pipeline AlgoMaster 2902 places a block order onPipeline and simultaneously accesses the market using algorithms.Additional icons can be provided to bring up news wires or technicalcharts via strategic partnerships.

FIG. 30 shows the operation of dropping on an icon to launchPipeline+Algorithms. Three speed settings are based on the current“red-line rate” (as defined in paragraph 0057) for the stock. Red-linevalues are available if symbol is on the BPR watch list. “Trickle” 3002indicates Pipeline+best tactic for low-market impact routing (3-10%).“TagAlong” 3004 indicates Pipeline+market participation as fast as wecan go without becoming the “axe”. Expect 10-30% depending on marketconditions “Aggressive” 3006 takes 30-60% of the market until half theorder is done or substantial resistance is encountered, then alternateswith “tag along” methods to allow price to find an equilibrium butaveraging at least 20% of the market. A red-line bar 3008 shows thered-line rate; of course, other indicators could be used as well, suchas a car tachometer.

Referring to FIG. 31, in a modified Pipeline Positions bar 800′, theStrategy graphic 3102 shows a market color (red-line) graphic 3104similar to the red-line bar 3008 just described. The trader can click onthe Pipeline route icon to see an alternative display showing aBollinger band/XVA graphic and Pipeline-specific controls. The switchingaction is visible on the Market Color graphic (Tactic) 3106. Automaticalgorithm switching minimizes information leaks by cutting out some ofsix possible actions (such as “Peg”, or “Take”, . . . ). The interfaceprovides trader controls to switch up/down in speed, such as the up/downarrow buttons 3108 and 3110, and Fast Forward buttons to launch veryaggressive trading (smart sweep) to the offer (bid) (button 3112) or up(down) 5 cents (button 3114). The trader can right-click to changenumber of cents, as explained below, or save other default in traderconfiguration.

As shown in FIG. 32, the trader can use a fast-forward limit priceoverride using a drag and drop paradigm. The default limit is 5 cents(configurable) from NBBO. The trader can right-click to change thenumber of cents; in one example, a pick list 3202 appears. The limitprice graphic will remain steady; market prices may fluctuate. The pricescale can change with price (e.g., ticks should be 2 cents for PG, 5cents for GOOG). The fast-forward button graphic toggles to simpleforward to revert back to normal mode or when the offer is above thelimit.

As shown in FIG. 33, a mouse scroll over the market color graphicreveals the meaning of the tactic display in a display 3302. Onswitching, the elements switched off show a red outline 3304 for 5seconds, and new elements are shared green. The interface uses colorrather than gray to convey that this is market color. In otherembodiments, the colors can convey additional information, such as themarket response to the algorithm's orders. This can be defined as a flagwhere “sensitive” indicates a stronger-than-average response, “normal”is average and “two-sided” indicates an increase in counter-partyactivity or a decrease in competition. Alternatively the market responsecan be measured as the ratio of the aggregate third-party order sizetriggered by the algorithm's orders to the algorithm's own aggregateorder size; for example a response factor of 50% means that every 1000shares placed by the algorithm prompts other market participants toeither place an additional 500 shares on the same side or cancel 500shares on the contra side. Of course, both the use of color rather thangrayscale and the specific colors used are illustrative rather thanlimiting.

Any variation of the preferred embodiment, or any other embodiment ofthe present invention, can be used with fast switching and safe mode,which will now be explained.

Fast switching is a development in how the Switching Engine executes thetransition between algorithms. In the past, when traders wanted tochange their intentions with a algorithm, they had to wait for venues tocancel orders before they could launch a new algorithm. They had to dothis in order to ensure they did not “over execute,” which is whatoccurs in instances where the trader allocates shares to the newalgorithm that had already been filled by the old algorithm. Waiting forthe cancellations from the old venue ensures the trader is only sendingunfilled shares to the new venue. However, waiting for thesecancellations could lead to half-second or even multi-seconddelays—valuable time in a world where millions of dollars oftransactions can occur in a matter of milliseconds. To avoid thesedelays the subject system employs an order management system inswitching between algorithms that allows it to process cancel requestsand new algorithm routes simultaneously without exposing users to therisk of over-execution. Because of this strategy, the subject system canswitch between algorithms in fewer than 10 milliseconds.

A preferred embodiment will be explained with reference to the flowchart of FIG. 34. When a user requests that the Engine switch from onespeed of operation to a different speed of operation, the Engineprocesses a cancel request on the existing routed order andsimultaneously, without waiting for the cancel confirmation, sends outan order to the new algorithm. In step 3402, the system receives therequest to switch algorithms and determines the size that will be routedout counting available shares and shares that are expected to besuccessfully canceled. In step 3404, the system sends a request tocancel the prior algorithm and simultaneously sends out the newalgorithm route.

More specifically, in a situation where a user is switching from a lowerspeed to a higher speed algorithm, the new higher speed algorithm thatthe subject system selects will be a tactical algorithm classified asLive Start (an algorithm that places orders immediately uponactivation), low-variance (an algorithm that has a rate of executionthat does not vary very much because it will cross the spread to takefrom an always available pool of liquidity). In a situation where a useris switching from a higher speed algorithm to a lower speed algorithm,the new lower speed algorithm that the subject system selects will be atactical algorithm that is NOT Live Start (an algorithm that will notimmediately place orders upon initiation) or high variance (an algorithmwhich because it is passive has a probability of being filled thatvaries depending on the direction of the market and various otherfactors).

This new order preferably has a quantity (number of shares) equal to thesum of (a) the remaining shares that had not yet been routed out, and(b) 80% of the shares that had been routed out to the slower algorithmsare subject to the cancel request.

If it is determined in step 3406 that the cancel request is entirelysuccessful, meaning no shares are executed from the slower algorithmbetween the times the cancel request was sent and received/processed,then the subject system does not need to employ any kind of ordermanagement strategy, as shown in step 3408.

If it is determined in step 3410 that the cancel request is partiallysuccessful, meaning no more than 20% of the shares on the routed-orderhave been filled, the fills are allocated in step 3412 to the customerorder without risk of over execution.

If more than 20% of the shares on the routed order have been filled,then there is a potential risk of over-execution. To handle thispossibility, all fills from either the original slower algorithm or thenew faster algorithm are allocated on a first come first served basisagainst the customer order in step 3414 as long as the order is notcompletely filled. If it is determined in step 3416 that the order iscompletely filled, any additional shares are allocated to an erroraccount managed by the subject system. Otherwise, no specific action isrequired, as shown in step 3418.

In step 3420, the system carries out error management. For example, thesubject system automatically executes a reversal trade, or a trade onthe opposite side of the filled shares; i.e. sell trades if the overexecuted shares were bought or buy trades if the over executed shareswere sold. The Engine will use a slow speed of execution on thisreversal trade in order to ensure that the reversal trade does not havenoticeable impact on the market. In an alternate embodiment, a customerservice representative is alerted of the over execution fills and hasthe option to call the customer to see if they want the fills, or if thecustomer does not want the fills to manually initiate the reversaltrade.

The “Safe Mode,” is a mode the Switching Engine automatically employs,regardless of the Engine's user-selected speed setting, when it detectsthe presence of competing algorithms or more generally an unusual surgein competitive pressure that is causing a movement in the price of astock. When there is unusual competition in a stock it can quickly drivethe price of the stock up or down to levels that would not be expectedin the course of a “normal” trading day. Often this kind of competitionis driven by algorithms seeking to buy or sell a large amount of stockin a short period of time; such that during the period the algorithm isbuying or selling the price is pushed to an “unnatural level.” But thenas soon as the algorithm stops its buying or selling activity the stockquickly returns to its previous price threshold.

If this kind of surge in competition and the accompanying price movementis not detected, a trader or an algorithm participating in the market atthe bid or the offer will find themselves with shares purchased atprices that ultimately represent the high or the low of the day. Sincethe subject system is designed to automate the use of algorithms fortraders; it is imperative that it be able to both detect the presence ofthis kind of price-impacting competition and then make algorithmselection and switching decisions that protect the user from receivingfills at these temporarily inflated (or deflated) and undesirableprices.

Therefore, the subject system employs an invention that (a) detects whenthere are competitors present in the marketplace and (b) responds byautomatically switching to a one of a set of tactical algorithmsdesigned to perform in this “competitive surge” environment.

More specifically when the Algorithm Switching Engine detects strongcompetition it responds to that competition by switching to and usingfor the duration of the surge, tactical algorithms that only send smallmarketable orders that tag along with the order flow and do not post anylimit orders. By switching to and using these types of algorithm, thesubject system avoids both contributing to the price movement andexecuting shares at the inflated (or deflated) prices. As shown in theflow chart of FIG. 35, when it is determined in step 3502 that that theprice crosses a threshold out of the normal range of prices, the systemtrades in safe mode in step 3504. If it is determined in step 3506 thatthe price has crossed back into the range of normal values, or if theprice remains within the normal range throughout trading, normal tradingis conducted in step 3508.

The calculations used by the Algorithm Switching Engine for detectingthe conditions which require Safe Mode and then trading in thoseconditions will now be detailed.

Safe Mode (S_(f) ⁺)

The safe mode threshold is one standard deviation from fair price (seefair price calculation below). For a buy order, subject system adoptssafe mode behavior if the log return r=10000 ln(S/S₀) [basis points]exceeds fair price by 1 unit of the expected price deviation from ageometric random walk. This condition for which safe mode is enabled canbe written as:

r ≥ r_(F)${r_{F} = {r_{M} + {10000\left( {{g(x)} + {\ln\left( {1 + \sqrt{^{\frac{\sigma^{2}\tau}{10^{8}}} - 1}} \right)}} \right)}}},$

where σ is the stock volatility known in the analytics table as AV and τ[minutes] corresponds to a period equal to the greater of 15 minutes orthe time elapsed in the trade.

In addition, r_(M)=10000 ln(S^(SPY)/S₀ ^(SPY)) denotes the log return ofthe S&P500 index from order arrival to the present time, as measuredfrom the NBBO midpoint of SPY. This definition will require storing inmemory the SPY midpoint at arrival. The function g(X) models the marketimpact as:

${{g(X)} = {{a\left( \frac{\sigma}{10000} \right)}^{b}\sqrt{X}}},$

where X is the number of shares filled for the order so far, includingPipeline block fills, divided by the stock's ADV; a and b are systemconfigurable global parameters. These parameters were calculated fromthe standard Bloomberg model as:

a=0.08

b=0.11

Similarly, for a sell order, the safe mode is enabled when:

r ≤ r_(F)$r_{F} = {r_{M} - {10000\left( {{g(x)} + {\ln\left( {1 + \sqrt{^{\frac{\sigma^{2}\tau}{10^{8}}} - 1}} \right)}} \right)}}$Notation:  S_(f)⁺ = S₀^(r_(F)/10000)S_(lpo) = Inf(S_(avg), S_(f)⁻)

When employing the Safe mode for fast-moving stocks (low rate variancefor adverse selection control):

If price exceeds Max(S_(f) ⁺, S₇₀) where S₇₀=S₀+0.7*(S_(max)−S₀) andS_(max) is the max price since arrival (vice versa for sells, using Min(), and S_(min) in the equation above), we will

-   -   a. Use only low variance algorithms that are not live start.    -   b. If on expiration of a non-IOC route, if speed=1 or 2 and we        find that it filled more than the expected fill quantity        Q_(EFQ), then replenish TIF to the same algorithm but with a        limit price set to S_(f) ⁺ (cancel and new order to same        algorithm with this limit price).    -   c. This “safe mode” behavior will persist as long as the stock        does not revert back to a “normal” price.

Fair Price (f)

The fair price function will take as arguments a quantity of shares, anindex drift amount in basis points and a start price, and will producethe stock's fair price as S=S₀e^(g(X)+r) ^(M) , where S₀ is the NBBOmidpoint at arrival and the definitions of g(X) and r_(M) are givenabove.

S _(f) =S ₀ e ^(r) ^(M) ^(/10000) e ^(g(x))

While preferred and alternative embodiments have been set forth above,those skilled in the art who have reviewed the present disclosure willreadily appreciate that other embodiments can be realized within thescope of the present invention. Some possible variations have beendisclosed above. Also, features of the embodiments that have beendisclosed separately can be used together, while those disclosedtogether can be used separately. In particular, all or only some of thedisclosed functionality can be used in any given embodiment. Therefore,the present invention should be construed as limited only by theappended claims.

Appendix: An Empirical Study of Resistance and Support on LiquidityDynamics

The purpose of this empirical study is twofold. Firstly, we examinewhether there is evidence of liquidity clustering around reference pricelevels. In a second step, we test whether the predictors similar tothose of liquidity also determine price direction. The bulk of theexisting literature on trade clustering focuses on how trades tend togather around prices that are round numbers (Osborne, Niederhoffer,Harris) or psychological barriers (Sonnemans, Donaldson and Kim).Sonnemans develops an empirical strategy to test between the odd pricehypothesis, according to which humans attribute more weight to the firstdigit of each number, and the alternative hypothesis that investors havetarget prices for their holdings. His findings suggest that prices canindeed turn into psychological references to the traders and act asresistance and support levels. Donaldson and Kim find evidence thatprice levels at multiples of 100 are psychological barriers to the DowJones Industrial Average and act, at least temporarily, as support andresistance levels.

This study focuses on intraday fluctuations in liquidity as measured bythe number of shares traded required to push a stock through a certainprice level. Resistance and support levels are not asymptotic prices atwhich trigger strategists buy or sell a stock (as in Krugman) but,instead, prices that can be crossed, although perhaps with moredifficulty, if the number of shares is large enough to push the pricethrough such levels (as in Donaldson and Kim or Bertola and Caballero).The proposed estimation model of liquidity dynamics is a more generalone than those found in existing literature since, for each price level,we consider major prior events and associated quantities as potentialdeterminants of accumulation of liquidity. Resistance and supportlevels, in which an unusual amount of liquidity is available on one sideof the market, are a particular case of historical price levels underconsideration.

After proposing a set of potential key predictive drivers of liquidityat each price level, we fit empirical models explaining its fluctuationsin order to estimate the impact and test the significance of eachindividual predictor.

Data and Methods:

We analyze market data for the period between Dec. 18th and Dec. 28,2006, excluding after-hours trading due to the lower liquidity levelsand frequency of trades at that time. For these same reasons, and toassure a fairly homogenous set of tickers where liquidity dynamics ismore likely to occur, we restricted the universe of stocks to those withan average volume-weighted price over 1 dollar and an average dailynumber of executed shares over 400,000. The resulting subset includes1,519 stocks over 8 trading days.

With the premise that the higher the volatility of a stock, the morelikely it is for two consecutive prices levels to be treated as thesame, we cross-grain market data into buckets that include all printswithin a price interval defined by the mean and variance of the spreadof each stock.

We excluded from the analysis all odd single prints (n) that were out ofline with adjacent prints i.e.

|P _(n) −P _(n−1)|>(spread+std) AND |P _(n+1) −P _(n−1)|<(spread+std)  (1)

where spread is the average difference between the prices of twosubsequent prints and std is its standard deviation. For first and lastprints in the day, the exclusion criteria are, respectively,|P_(n)−P_(n+1)|>(spread+std) and

|P _(n) −P _(n−1)|>(spread+std)

After filtering, we take the first print of each symbol on each tradingday and include in its bucket all subsequent prints n that satisfy thecondition:

n ∈ bucket:|Max{P _(n)}−Min{P _(n)}|<=(spread+std)   (2)

Every time a print does not satisfy condition (2) a new bucket isstarted. All buckets are classified according to the price movement ofthe print that initiated it i.e. a bucket is classified as an uptick (U)when it is started with a price increase, otherwise it is classified asa downtick (D). We then classify each bucket as a type of eventaccording to its tick and that of the subsequent bucket: If the bucket'sprice is an uptick and the last price change was also an uptick then weclassify the event as a double-uptick. Likewise, a downtick that followsa downtick is classified a double-downtick. When price changes directionfrom an uptick to a downtick it is classified as a resistance level or,in the reverse case, as a support level.

The empirical implementation involves the pooling of all stocks formodel fitting, which requires the preliminary step of correcting for theheterogeneity of stocks. For this purpose, instead of looking at theabsolute value of number of shares executed, we consider instead theadjusted volume in each bucket by taking its ratio to the average tradedvolume in each symbol in each trading day. Table 1 displays thefrequency of each type of event as well and the number of executedshares at each event in absolute value (quantity), relatively to theaverage volume of the stock on each specific date (q/qavg) and inlogarithms of the relative value to the average (Log(q/qavg)).

In our sample, price movements are more likely to change direction fromone bucket to another than to persist. When price movements persist, thenumber of executed shares is higher on average that at turning points.This finding is consistent with the fact that turning points reflectone-sided liquidity that was not exhausted, whereas double upticks anddownticks are persistent price movements driven by a higher than averagenumber of executed shares. Our estimation models explore this evidencemore thoroughly by looking at the fluctuations in volume within eachtype of event and testing its correlation with prior clustering at asimilar price.

TABLE 1 Type of Event and Executed Shares Freq Quantity Q/QavgLog(Q/Qavg) U 23% 10,678 1.085 −0.561 D 23% 10,698 1.065 −0.583 R 27%9,602 0.948 −0.761 S 27% 9,072 0.906 −0.804

In the empirical specification, we hypothesize that volume traded ineach bucket may be affected by the immediately preceding event andrespective volume and events and quantity traded at similar historicalprice levels. In an analogous process to the construction of bins, weconsider two prices to be similar when the absolute difference betweenthe two is smaller than the spread plus its standard deviation. Theproposed set of determinants includes the following variables:

Event type of the prior bucket: E_(t-1)(S) where S ∈ {U, D, R, S} is anindicator variable for double uptick, double downtick, resistance andsupport, respectively. For example, E_(t-1)(U) is equal to 1 if eventtype was a double uptick and equal to 0 otherwise.

Quantity traded in the preceding bucket interacted with respective eventtype QxE_(t-1)(S) where S ∈ {U, D, R, S}. This term allows quantitytraded in immediately prior event to have a different impact on currentnumber of shares traded depending on whether that event was a doubleuptick, a double downtick, a resistance or a support level.

Event type around latest price similar to current price E_(price)(S),where S ∈ {U, D, R, S}. E_(price)(U) is equal to 1 if event was a doubleuptick and equal to 0 otherwise. In reference case, current price hasnot been visited in the past 24 hours.

Interaction of the quantity traded in latest bucket around current pricewith associated event type QxE_(price)(S), where S ∈ {U, D, R, S}.

Whether it is the case that there is an extraordinary number of sharestraded around current price at any instance within the prior 24 hours(BigQ). We consider volume to be extraordinarily high if quantity isstrictly larger than two times the average for that symbol that day. Theindicator variable of very high volume around current price isinteracted with an indicator variable for event type of latest instance.(BigQxE) S ∈ {U, D, R, S}. BigQxE(U) is strictly positive if it is thecase that current price has been visited within the prior 24 hours andthe latest instance of that type of event was a double tick.

Whether current price is in the neighborhood of the maximum or minimumvolume-weighted prices of the prior trading day buckets. Max and Min areindicator variables for each case.

Whether current price is in the neighborhood of the first and lastvolume-weighted price of the prior trading day buckets. Open and Closeare indicator variables for each case.

Whether current price is in the neighborhood of the whole dollar or 50cents. Dollar and Halves are indicator variables for each respectivecase.

Table 2 displays either the mean of each proposed variable by type ofevent, which for indicator variables corresponds to the frequency of theevent in question.

TABLE 2 Table of means by type of event U D R S E t-1(U) −0.332 — 0.438— E t-1(D) — 0.485 — 0.441 E t-1(R) — 0.51 — 0.55 E t-1(S) −0.373 —0.553 — Q * E t-1(U) −0.332 — −0.329 — Q * E t-1(D) — −0.317 — 0.441 Q *E t-1(R) — −0.376 −0.428 0.55 Q * E t-1(S) −0.373 — — — E price(U) 0.1430.187 0.135 0.168 E price(D) 0.189 0.145 0.171 0.137 E price(R) 0.330.299 0.374 0.281 E price(S) 0.297 0.324 0.281 0.374 Q × E price (U)−0.097 −0.109 −0.096 −0.103 Q × E price (D) −0.116 −0.102 −0.11 −0.101 Q× E price (R) −0.262 −0.221 −0.321 0.225 Q × E price (S) −0.236 −0.266−0.238 −0.338 BigQ * E (U) 0.179 0.184 0.178 0.18 BigQ * E (D) 0.1791.174 0.174 0.172 BigQ * E (R) 0.173 0.171 0.184 0.175 BigQ * E (S)0.157 0.158 0.161 0.17 Open 0.023 0.023 0.024 0.024 Close 0.035 0.0360.037 0.036 Max 0.018 0.019 0.02 0.019 Min 0.035 0.035 0.035 0.035Dollar 0.075 0.075 0.078 0.079 Halves 0.146 0.146 0.149 0.15

The proposed set of explanatory variables of volume traded is includedin a linear regression, predicting number of shares traded relatively tothe average that day for that symbol. For each specific event, only twoimmediately prior events are possible: a for example double uptick canonly be preceded by another double uptick or a support. For this reason,only one indicator variable for lagged event is defined when a constantis included in the model. As for interaction with associated quantity,only two lagged indicator variables can be identified.

In the linear estimation model we calculate the Huber/White “sandwich”estimators of variance, which are robust in the sense that they giveaccurate assessments of the sample-to-sample variability of theparameter estimates even when the model is misspecified in severalinstances, such as when there are minor problems about normality,heteroscedasticity, or some observations that exhibit large residuals.

Results: Table 1 displays results of the least squares estimation. Thefindings indicate that almost all proposed variables have astatistically significant effect on volume traded. Quantity traded inthe previous bucket, as well as quantity traded in the preceding bucketaround current price, have a significant positive effect on volume.There is also a significantly higher quantity traded in the cases wherethere was a prior major clustering of volume around the current price.

Although proximity to resistance or support price levels has a negativeimpact on quantity traded, when a resistance or support price level isrevisited, volume is significantly higher. Furthermore, the larger theprior volume traded at a turning point around a certain price, thebigger the impact on volume in a subsequent event around that price.

The fraction of times the current price has been revisited as a turningpoint (over the total number of events around that price) has a verydifferent impact on current volume depending on whether the currentevent is a double tick or a turning point. Volume is lower when price isrevisited in a turning point, but is much higher when price is passed ona double tick.

Surprisingly, volume traded around the reference prices of the priortrading day is higher in the cases where there is a change of pricedirection, but not when current event is a double tick.

TABLE 2 Linear Regression. Explained variable: Log [Q/avg(Q)] (1) (2) UU Coeff. SE Coeff. SE E t-1 (U) — — — — E t-1 (D) — — — — E t-1 (R) — —— — E t-1 (S) −0.033 0.008 −0.138 0.004 Q × E t-1 (U) −0.156 0.018 0.2010.002 Q × E t-1 (D) — — — — Q × E t-1 (R) — — — — Q × E t-1 (S) −0.1060.018 0.255 0.022 E price (U) 0.546 0.065 — — E price (D) 0.58 0.065 — —E price (R) 0.478 0.065 — — E price (S) 0.65 0.065 — — Q × E price (U)0.314 0.018 — — Q × E price (D) 0.312 0.018 — — Q × E price (R) 0.3820.018 — — Q × E price (S) 0.389 0.018 — — BigQ × E (U) 0.144 0.005 0.1450.005 BigQ × E (D) 0.157 0.005 0.153 0.005 BigQ × E (R) 0.191 0.0050.193 0.005 BigQ × E (S) 0.212 0.006 0.228 0.005 Open −0.035 0.012−0.035 0.012 Close −0.036 0.009 −0.04 0.009 Max 0.033 0.013 0.034 0.013Min −0.056 0.01  −0.058 0.01  Dollar 0.058 0.009 0.057 0.009 Halves0.064 0.007 0.064 0.007 Constant −1.075 0.065 −0.467 0.004 R2 0.08 0.075N 460,004 Note 1: Coeff. is point estimate and SE is standard error Note2: gray-shaded estimates are not statistically significant at 5%significance level

TABLE 3 Linear Regression. Explained variable: Log [Q/avg(Q)] (1) (2) DD Coeff. SE Coeff. SE E t-1 (U) — — — — E t-1 (D) — — — — E t-1 (R)−0.143 0.004 −0.073 0.008 E t-1 (S) — — — — Q × E t-1 (U) — — — — Q × Et-1 (D) 0.198 0.002 −0.188 0.018 Q × E t-1 (R) 0.25 0.002 −0.148 0.019 Q× E t-1 (S) −0.106 0.018 — — E price (U) — — 0.46 0.065 E price (D) — —0.454 0.065 E price (R) — — 0.54 0.065 E price (S) — — 0.418 0.065 Q × Eprice (U) — — 0.341 0.018 Q × E price (D) — — 0.345 0.018 Q × E price(R) — — 0.415 0.018 Q × E price (S) — — 0.423 0.018 BigQ × E (U) 0.1570.005 0.158 0.005 BigQ × E (D) 0.15 0.005 0.172 0.005 BigQ × E (R) 0.2260.005 0.433 0.015 BigQ × E (S) 0.203 0.006 0.589 0.06  Open −0.032 0.012−0.025 0.012 Close −0.055 0.009 −0.047 0.009 Max −0.026 0.013 −0.0260.013 Min −0.033 0.009 −0.019 0.009 Dollar 0.053 0.009 0.05 0.009 Halves0.071 0.007 0.063 0.006 Constant −0.503 0.004 −0.993 0.068 R2 0.0740.078 N 458,883 Note 1: Coeff. is point estimate and SE is standarderror Note 2: gray-shaded estimates are not statistically significant at5% significance level

TABLE 4 Linear Regression. Explained variable: Log[Q/avg(Q)] (1) (2) R RCoeff. SE Coeff. SE E t-1 (U) — — — — E t-1 (D) — — — — E t-1 (R) — — —— E t-1 (S) −0.033 0.008 −0.203 0.004 Q × E t-1 (U) −0.156 0.018 0.2160.002 Q × E t-1 (D) — — — — Q × E t-1 (R) — — — — Q × E t-1 (S) −0.1060.018 0.275 0.002 E price (U) 0.546 0.065 — — E price (D) 0.58 0.065 — —E price (R) 0.478 0.065 — — E price (S) 0.65 0.065 — — Q × E price (U)0.314 0.018 — — Q × E price (D) 0.312 0.018 — — Q × E price (R) 0.3820.018 — — Q × E price (S) 0.389 0.018 — — BigQ × E (U) 0.144 0.005 0.1560.005 BigQ × E (D) 0.157 0.005 0.171 0.005 BigQ × E (R) 0.191 0.0050.208 0.005 BigQ × E (S) 0.212 0.006 0.247 0.005 Open

Close −0.036 0.009 −0.031 0.009 Max

Min −0.056 0.01  −0.03 0.009 Dollar 0.058 0.009 0.045 0.008 Halves 0.0640.007 0.069 0.006 Constant −1.156 0.06  −0.614 0.004 R2 0.092 0.086 N539,399 Note 1: Coeff. is point estimate and SE is standard error Note2: gray-shaded estimates are not statistically significant at 5%significance level

TABLE 5 Linear Regression. Explained variable: Log[Q/avg(Q)] (1) (2) S SCoeff. SE Coeff. SE E t-1 (U) — — — — E t-1 (D) — — — — E t-1 (R) −0.2250.004 −0.073 0.008 E t-1 (S) — — — — Q × E t-1 (U) — — — — Q × E t-1 (D)0.215 0.002 −0.188 0.015 Q × E t-1 (R) 0.274 0.002 −0.148 0.015 Q × Et-1 (S) — — — — E price (U) — — 0.52 0.064 E price (D) — — 0.471 0.064 Eprice (R) — — 0.582 0.064 E price (S) — — 0.47 0.063 Q × E price (U) — —0.359 0.015 Q × E price (D) — — 0.365 0.015 Q × E price (R) — — 0.4370.015 Q × E price (S) — — 0.457 0.015 BigQ × E (U) 0.17 0.005 0.1730.005 BigQ × E (D) 0.147 0.005 0.151 0.005 BigQ × E (R) 0.23 0.005 0.2160.005 BigQ × E (S) 0.204 0.005 0.195 0.005 Open −0.029 0.011 −0.0280.011 Close −0.039 0.009 −0.036 0.009 Max

Min −0.023 0.009 −0.022 0.009 Dollar 0.048 0.009 0.048 0.008 Halves0.082 0.006 0.082 0.006 Constant −0.641 0.004 −1.182 0.064 R2 0.0890.095 N 536,466 Note 1: Coeff. is point estimate and SE is standarderror Note 2: gray-shaded estimates are not statistically significant at5% significance level

TABLE 6 Linear Regression. Explained variable: Log [Q/avg(Q)] (1) (2)U/R U/R Coeff. SE Coeff. SE E t-1 (U) — — — — E t-1 (D) — — — — E t-1(R) — — — — E t-1 (S) 0.008 0.007 −0.062 0.004 Q × E t-1 (U) −0.1190.016 0.182 0.002 Q × E t-1 (D) — — — — Q × E t-1 (R) — — — — Q × E t-1(S) −0.058 0.016 0.235 0.002 E price (U) 0.479 0.059 — — E price (D)0.511 0.059 — — E price (R) 0.487 0.059 — — E price (S) 0.602 0.059 — —Q × E price (U) 0.314 0.016 — — Q × E price (D) 0.312 0.016 — — Q × Eprice (R) 0.382 0.016 — — Q × E price (S) 0.389 0.016 — — BigQ × E (U)0.166 0.005 0.164 0.005 BigQ × E (D) 0.184 0.005 0.179 0.005 BigQ × E(R) 0.253 0.005 0.261 0.005 BigQ × E (S) 0.26 0.005 0.279 0.005 Open0.005 0.011 0.004 0.011 Close −0.018 0.009 −0.023 0.009 Max 0.07 0.0120.07 0.013 Min −0.034 0.009 −0.037 0.009 Dollar 0.081 0.009 0.081 0.009Halves 0.063 0.006 0.064 0.006 Constant −0.303 0.059 0.252 0.004 N999,403 Note 1: Coeff. is point estimate and SE is standard error Note2: gray-shaded estimates are not statistically significant at 5%significance level

The results from the estimation of the quantile regressions for the80^(th) percentile are shown in Table 2. The evidence suggests thatlarge accumulation of volume is predicted in a very similar way toaverage quantity. All point estimates are higher than those obtainedfrom the least squares regression, except for the proportion of turningpoints around the current price. These findings imply that the 80thquartile of volume is, as expected, higher than the average and moreaffected by each predictor than the average. Nonetheless, thequalitative findings are virtually the same.

TABLE 7 Linear Regression. Explained variable: Log [Q/avg(Q)] (1) (2)D/S D/S Coeff. SE Coeff. SE E t-1 (U) — — — — E t-1 (D) — — — — E t-1(R) −0.077 0.004 −0.055 0.007 E t-1 (S) — — — — Q × E t-1 (U) — — — — Q× E t-1 (D) 0.183 0.002 −0.118 0.016 Q × E t-1 (R) 0.225 0.002 −0.0790.016 Q × E t-1 (S) −0.058 0.016 — — E price (U) — — 0.468 0.06  E price(D) — — 0.468 0.06  E price (R) — — 0.557 0.06  E price (S) — — 0.5120.065 Q × E price (U) — — 0.264 0.016 Q × E price (D) — — 0.268 0.016 Q× E price (R) — — 0.326 0.016 Q × E price (S) — — 0.323 0.016 BigQ × E(U) 0.175 0.005 0.182 0.005 BigQ × E (D) 0.151 0.005 0.154 0.005 BigQ ×E (R) 0.265 0.005 0.248 0.005 BigQ × E (S) 0.259 0.005 0.246 0.005 Open

−0.008 0.011 Close −0.044 0.009 −0.041 0.009 Max

−0.012 0.012 Min −0.02 0.009 −0.019 0.009 Dollar 0.075 0.009 0.074 0.009Halves 0.077 0.006 0.077 0.006 Constant 0.225 0.004 −0.29 0.06  N995,349 Note 1: Coeff. is point estimate and SE is standard error Note2: gray-shaded estimates are not statistically significant at 5%significance level

TABLE 8 Logistic Regression Explained: P[Reverse] (1) (2) U/R D/S Coeff.SE Coeff. SE Q t-1 1.035 0.046 −1.024 0.043 Change 1.053 0.006 1.0620.006 E price(U) 2.596 0.188 0.811 0.057 E price(D) 0.949 0.068 2.1960.156 E price(R) 1.432 0.107 1.058 0.075 E price(S) 1.252 0.09 1.2870.095 Q × E price(U) 0.995 0.045 0.94 0.039 Q × E price(D) 0.924 0.0410.987 0.042 Q × E price(R) 0.937 0.043 0.929 0.039 Q × E price(R) 0.9260.041 0.957 0.041 BigQ × E(U) 1.016 0.007 1.001 0.006 BigQ × E (D) 1.0230.006 0.996 0.007 BigQ × E (R) 1.102 0.007 1.081 0.007 BigQ × E (S)1.106 0.007 1.095 0.007 Open 1.054 0.014 1.018 0.014 Close 1.014 0.0111.022 0.011 Max 1.06 0.016 1.023 0.016 Min 1.009 0.011 1.004 0.011Dollar 1.042 0.011 1.032 0.011 Halves 1.027 0.008 1.027 0.008 N 996,061992,719 R2 0.01 0.01

TABLE 9 Logistic Regression Explained: P[Reverse] (3) ALL Coeff. SE Up0.993 0.003 Q t-1 1.028 0.031 Pchange 1.086 0.004 E price(U) 0.966 0.053E price(D) 0.958 0.052 E price(R) 0.923 0.056 E price(S) 0.93 0.057 Q ×E price(U) 0.966 0.029 Q × E price(D) 0.957 0.029 Q × E price(R) 0.9230.028 Q × E price(R) 0.93 0.28 BigQ × E(U) 1.013 0.004 BigQ × E (D)1.015 0.005 BigQ × E (R) 1.104 0.005 BigQ × E (S) 1.112 0.005 Open 1.0320.01 Close 1.006 0.008 Max 1.04 0.011 Min 1 0.008 Dollar 1.04 0.008Halves 1.028 0.008 N 1,997,208 R2 0.002

Our findings suggest that a change in direction around a price level isa significant predictor of subsequent volume traded at that same price.Specifically, a resistance (support) price might be an indicator of asignificant amount of liquidity on the supply (demand) side. If thesubsequent event also results in a change of direction, we can inferthat the opposite side of the market did not exhaust the liquidityavailable. Our estimates are certainly consistent with this hypothesissince the volume traded at this point is either the same or lower thanthat observed in events occurring at prices that were not identifiedeither as resistance or support. In the case that the subsequent eventresults in price changes in the same direction, we can infer that theliquidity available on the supply (demand) side was exhausted, whichimplies that the volume traded was unusually large. Both ourspecifications support this finding.

1. A method for trading goods and/or services, the method comprising:(a) receiving, into a computing device, a selection of a plurality oftrading algorithms; (b) executing the plurality of trading algorithms ina coordinated or concurrent manner: (c) switching among the plurality oftrading algorithms; and (d) reducing a cost associated with theswitching of step (d).
 2. The method in claim 1, wherein the goodsand/or services comprise financial instruments or derivatives offinancial instruments.
 3. The method in claim 1, wherein step (c)comprises canceling a first one of the plurality of trading algorithmsand starting a second one of the plurality of trading algorithms.
 4. Themethod in claim 3, wherein step (d) comprises determining whether thefirst one of the plurality of trading algorithms has executed any tradesbetween a time in which a cancel request is sent and a time in which thecancel request is processed.
 5. The method in claim 4, wherein, if thefirst one of the plurality of trading algorithms has executed any tradesbetween a time in which a cancel request is sent and a time in which thecancel request is processed, step (d) further comprises determiningwhether the executed trades can be allocated to an order withoutover-execution of the order.
 6. The method in claim 5, wherein, if theexecuted trades cannot be allocated to the order without over-executionof the order, step (d) further comprises executing a reversal trade toavoid over-execution of the order.
 7. The method in claim 1, whereinstep (d) comprises: (i) determining a fair price of one of the goodsand/or services being traded; (ii) determining a threshold; and (iii)determining whether a current trading price of said one of the goodsand/or services being traded differs from the fair price by at least thethreshold.
 8. The method in claim 7, wherein, if the current tradingprice of said one of the goods and/or services being traded differs formthe fair price by at least the threshold, step (d) further comprises(iv) switching to a trading algorithm that avoids contributing to aprice movement of said one of the goods and/or services being traded. 9.The method in claim 8, wherein, when the current trading price of saidone of the goods and/or services being traded no longer differs form thefair price by at least the threshold, step (d) further comprises (v)switching back to the trading algorithm in use before trading pricediffered from fair price or another trading algorithm that the SwitchingEngine deems most suitable for trading in fair price tradingenvironment.
 10. A system for trading goods and/or services, the systemcomprising: a display device; a user input device; a communicationdevice for communicating with an external system; and a processor, incommunication with the display device, the user input device and thecommunication device, the processor being programmed for: (a) receiving,into from the user input device, a selection of a plurality of tradingalgorithms; (b) executing the plurality of trading algorithms in acoordinated or concurrent manner; (c) switching among the plurality oftrading algorithms; and (d) reducing a cost associated with theswitching of step (d).
 11. The system in claim 10, wherein the goodsand/or services comprise financial instruments or derivatives offinancial instruments.
 12. The system in claim 10, wherein the processorperforms step (c) by canceling a first one of the plurality of tradingalgorithms and starting a second one of the plurality of tradingalgorithms.
 13. The system in claim 12, wherein the processor performsstep (d) by determining whether the first one of the plurality oftrading algorithms has executed any trades between a time in which acancel request is sent and a time in which the cancel request isprocessed.
 14. The system in claim 13, wherein, if the first one of theplurality of trading algorithms has executed any trades between a timein which a cancel request is sent and a time in which the cancel requestis processed, the processor performs step (d) further by determiningwhether the executed trades can be allocated to an order withoutover-execution of the order.
 15. The system in claim 14, wherein, if theexecuted trades cannot be allocated to the order without over-executionof the order, the processor performs step (d) further by executing areversal trade to avoid over-execution of the order.
 16. The system inclaim 10, wherein the processor performs step (d) by: (i) determining afair price of one of the goods and/or services being traded; (ii)determining a threshold; and (iii) determining whether a current tradingprice of said one of the goods and/or services being traded differs fromthe fair price by at least the threshold.
 17. The system in claim 16,wherein, if the current trading price of said one of the goods and/orservices being traded differs form the fair price by at least thethreshold, the processor performs step (d) further by (iv) switching toa trading algorithm that avoids contributing to a price movement of saidone of the goods and/or services being traded.
 18. The system in claim17, wherein, when the current trading price of said one of the goodsand/or services being traded no longer differs form the fair price by atleast the threshold, the processor performs step (d) further by (v)switching back to the trading algorithm in use before trading pricediffered from fair price or another trading algorithm that the SwitchingEngine deems most suitable for trading in fair price tradingenvironment.
 19. An article of manufacture for trading goods and/orservices, the article of manufacture comprising: a computer-readablestorage medium; and code stored in the computer-readable storage medium,the code, when executed in a computing device, controlling the computingdevice for: (a) receiving, into the computing device, a selection of aplurality of trading algorithms; (b) executing the plurality of tradingalgorithms in a coordinated or concurrent manner; (c) switching amongthe plurality of trading algorithms; and (d) reducing a cost associatedwith the switching of step (d).